编程练习
题目:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
思路:拿到题目一看,很简单的排序问题,输入数组,求出排序后的前k个元素。很容易想到ArrayList中的sort方法,定义两个ArrayList,一个存放当前数组,记做tmp;一个存放结果集,记做res。
将输入数组中的元素挨个放入tmp中,随后调用arraylist的sort方法对tmp中的元素做从小到大的排序,最后再取tmp中的前n个元素放入结果集res中即可。
注意:需考虑特殊情况,如果输入数组arr为空,则结果集直接返回null;如果k=0或者k>arr.length,则应该返回一个空的res;
java代码如下:
1 | import java.util.ArrayList; |