剑指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
原文地址:https://www.cnblogs.com/Transkai/p/11268042.html