输入n个整数,输出其中最小的k个(Java实现)

输入:

5 2
1 3 5 7 2

输出:

1 2

思路:对输入的数字进行排序,然后选出其中最小的几个

方法一:利用数组——Arrays.sort(数组名);

import java.util.Arrays;
import java.util.Scanner;
public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()){
			int length = sc.nextInt();//数组长度
			int k = sc.nextInt();//最小的k个数
			int[] arr = new int[length];
			for(int i = 0;i

必须把第16行代码写成System.out.println(arr[j]);才可以通过,虽然在编译器上,就算写成System.out.print(arr[j]);也可以运行出想要的结果

方法二:利用集合——Collections.sort(集合名);

import java.util.*;
public class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()){
			int num = sc.nextInt();
			int k = sc.nextInt();
			ArrayList al = new ArrayList();
			for(int i = 0;i

上述代码,变量作用域要是变了,在while循环外面,牛客网也不能通过,报出的错是,是否存在数组越界,且通过率为0,虽然编译器上,num,k,以及al在while循环外面也能够运行出想要的结果

你可能感兴趣的:(Exercises)