输入n个整数,输出其中最小的k个。
详细描述:
接口说明
原型:
bool GetMinK(unsignedint uiInputNum, int * pInputArray, unsignedint uiK, int * pOutputArray);
输入参数:
unsignedint uiInputNum //输入整数个数
int * pInputArray //输入整数数组
unsignedint uiK //需输出uiK个整数
输出参数(指针指向的内存区域保证有效):
int * pOutputArray //最小的uiK个整数
返回值:
false 异常失败
true 输出成功
输入说明 1 输入两个整数 2 输入一个整数数组
输出一个整数数组
第一种方法用List,第二种方法用数组,思路一模一样
方法一:
import java.util.*; public class Main { public static void main(String[] args) { Scanner scan=new Scanner(System.in); while(scan.hasNext()) { int num=scan.nextInt(); int k=scan.nextInt(); ArrayList al=new ArrayList(); for(int i=0;i<num;i++){ al.add(scan.nextInt()); } Collections.sort(al); for(int i=0;i<k;i++){ if(i==k-1) System.out.println(al.get(i));//这里不能加空格,而且要是println,否则过不了 else System.out.print(al.get(i)+" "); } } } } 方法二:
import java.util.*; public class Main { public static void main(String[] args) { Scanner scan=new Scanner(System.in); while(scan.hasNext()) { int num=scan.nextInt(); int k=scan.nextInt(); int[] data=new int[num]; for(int i=0;i<num;i++){ data[i]=scan.nextInt(); } Arrays.sort(data); for(int i=0;i<k;i++){ if(i==k-1) System.out.println(data[i]); else System.out.print(data[i]+" "); } } } }
