每日算法之最小的K个数
JZ40 最小的K个数
描述
给定一个长度为 n 的可能有重复值的数组,找出其中不去重的最小的 k 个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4(任意顺序皆可)。
思路:
具体做法:
step 1:优先判断k为0或者输入数组长度为0的特殊情况。
step 2:使用sort函数对整个数组排序。
step 3:遍历排序后的数组前k个元素即可获取最小的k个
代码
package mid.JZ40最小的K个数;
import java.util.ArrayList;
import java.util.Arrays;
public class Solution {
public ArrayList<Integer> GetLeastNumbers_Solution(int[] input, int k) {
//存储结果
ArrayList<Integer> result = new ArrayList<>();
//初始化最大元素为1位置的元素
Arrays.sort(input);
for (int i = 0; i < k; i++) {
result.add(input[i]);
}
return result;
}
public static void main(String[] args) {
int[] arr = new int[]{4,5,1,6,2,7,3,8};
System.out.println(new Solution().GetLeastNumbers_Solution(arr, 4));
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程