剑指offer——最小的K个数__(待优化)

来源:互联网 发布:led胸牌编辑软件 编辑:程序博客网 时间:2024/06/06 11:48

题目描述

输入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;    }}


原创粉丝点击