LeetCode(剑指 Offer)- 40. 最小的 k 个数
Posted 放羊的牧码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode(剑指 Offer)- 40. 最小的 k 个数相关的知识,希望对你有一定的参考价值。
题目链接:点击打开链接
题目大意:略
解题思路:略
相关企业
- 字节跳动
AC 代码
- Java
class Solution
public int[] getLeastNumbers(int[] arr, int k)
int min = arr[0], max = arr[0];
for (int i = 1; i < arr.length; i++)
int val = arr[i];
if (val < min) min = val;
if (val > max) max = val;
int size = max - min + 1;
int[] tmp = new int[size];
for (int i = 0; i < arr.length; i++)
tmp[arr[i] - min]++;
arr = new int[k];
for (int i = 0, j = 0; i < tmp.length; i++)
while (tmp[i] > 0 && j < k)
arr[j++] = i + min;
tmp[i]--;
if (j >= k)
break;
return arr;
开发者涨薪指南
48位大咖的思考法则、工作方式、逻辑体系
以上是关于LeetCode(剑指 Offer)- 40. 最小的 k 个数的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode(剑指 Offer)- 40. 最小的 k 个数
LeetCode12. 整数转罗马数字 / 剑指 Offer 40. 最小的k个数 / 剑指 Offer 41. 数据流中的中位数