学习目标:
目标:熟练运用Java所学知识
学习内容:
本文内容:使用java解决 :top K问题
题目描述
给定一个数组,找出其中最小的K个数。
例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。
如果K>数组的长度,那么返回一个空的数组
题目分析
这个题目挺简单的,只需要对数组进行排序,然后返回前k个数即可
但是要注意
- 该题目给的返回类型是ArrayList类型的,所以就要创建一个顺序表,将最小的k个数添加到顺序表中
- 需要判断k是否大于数组长度,大于的话返回空顺序表
实现代码
public static ArrayList<Integer> GetLeastNumbers_Solution(int[] input, int k) {
ArrayList<Integer> list = new ArrayList<>();//创建顺序表
//判断k与数组长度的关系
if (k > input.length) {
return list;
}
Arrays.sort(input);//对数组进行排序
//将前k个数字添加到顺序表中
for (int i = 0; i < k; i++) {
list.add(input[i]);
}
return list;//返回该顺序表
}