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

相关推荐

活泼的代码渣渣在泡池...:哈哈哈挺好的,我也上岸美团了,不说了,我又接了一单
点赞 评论 收藏
分享
12-01 18:27
已编辑
湖南科技大学 后端工程师
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务