题目描述
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
思路:TreeSet是有序的,全部放进去,然后取出k个来。
题目注意,如果k大于数组长度 ,是要return 空的集合的。
import java.util.ArrayList;
import java.util.Iterator;
import java.util.TreeSet;
public class Solution {
public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
ArrayList<Integer>list = new ArrayList<>();
if(input.length==0||k==0||k>input.length)return list;
TreeSet<Integer>set = new TreeSet<>();
for (int i = 0; i < input.length; i++) {
set.add(input[i]);
}
Iterator<Integer>iterator =set.iterator();
int num=0;
while(num<k&&iterator.hasNext()){
list.add(iterator.next());
num++;
}
return list;
}
}