28.找出最的几位数
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
题很简单,就是找到小的就交换到前面去,并且添加到list。
原数组作为容器交换的话,我想的是不动原数组,就用了clone方法。
毕竟一个查询方法,完了之后改变了原数组的顺序,不太好。
注意判断要取得数目大于数组长度的情况;
import java.util.ArrayList; public class Solution { public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) { ArrayList<Integer> list = new ArrayList<>(); if(input.length < k) { return list; } int[] array = input.clone(); int temp = 0; for(int i = 0; i < k; i++){ int min = i; for(int j = i ;j < array.length; j++) { if(array[min] > array[j]) { min = j; } } temp = array[i]; array[i] = array[min]; array[min] = temp; list.add(array[i]); } return list; } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步