关注
TOP k问题的nlogn代码框架,所有top k题目都适用,用的就是quick select叫快速选择,是快排的变种。
private int quickSort(int[] nums, int start, int end, int k) {
if (start == end) {
return nums[start];
}
int pivot = nums[(start + end)/2];
int left = start; //左指针
int right = end; //右指针
while(left <= right) {
while(left <= right && nums[left] < pivot) {
left++;
}
while(left <= right && nums[right] > pivot) {
right--;
}
if(left <= right) {
int temp = nums[left];
nums[left] = nums[right];
nums[right] = temp;
left++;
right--;
}
}
if(start + k - 1 <= right) {
return quickSort(nums, start, right, k);
}
if(start + k - 1 >= left) {
return quickSort(nums, left, end, k - left + start);
}
return nums[right + 1];
}
查看原帖
2 2
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 秋招开始捡漏了吗 #
14193次浏览 74人参与
# 今年秋招还有金九银十吗 #
17859次浏览 134人参与
# “vivo”个offer #
46637次浏览 310人参与
# 秋招,不懂就问 #
331901次浏览 1986人参与
# 辞职后的日常 #
15731次浏览 84人参与
# 上班后,才发现大学__白学了 #
2283次浏览 22人参与
# 满帮集团求职进展汇总 #
8133次浏览 71人参与
# 打工人的精神状态 #
101255次浏览 1309人参与
# 分享一个让你热爱工作的瞬间 #
43508次浏览 395人参与
# 上班到公司第一件事做什么? #
98916次浏览 681人参与
# 学历对求职的影响 #
550621次浏览 3904人参与
# 实习期间如何提升留用概率? #
189991次浏览 1606人参与
# 一人一个landing小技巧 #
127707次浏览 1463人参与
# 我和mentor的爱恨情仇 #
79447次浏览 434人参与
# 学历or实习经历,哪个更重要 #
192585次浏览 1026人参与
# 海信求职进展汇总 #
85135次浏览 408人参与
# 秋招结束之后的日子 #
100189次浏览 1011人参与
# 被同事甩锅了怎么办 #
25369次浏览 100人参与
# 数字马力求职进展汇总 #
212078次浏览 1677人参与
# 和mentor 1on1 都聊什么? #
4089次浏览 22人参与
# 你见过哪些工贼行为 #
32296次浏览 151人参与
查看15道真题和解析