剑指offer 29.时间效率 最小的K个数
题目描述
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
话不多说
直接上代码
1 public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) { 2 ArrayList<Integer> list=new ArrayList<Integer>(); 3 if (k>input.length) { 4 return list; 5 } 6 for (int i = 0; i < input.length; i++) { 7 list.add(input[i]); 8 } 9 Collections.sort(list); 10 List<Integer> list2= list.subList(0, k); 11 ArrayList<Integer> resultList=new ArrayList<>(list2); 12 return resultList; 13 14 }
注意:第10行中不能直接写成 ArrayList<Integer> list2= (ArrayList<Integer>) list.subList(0, k);
负责会报错java.util.ArrayList$SubList cannot be cast to java.util.ArrayList