lc_top_0925
lc215 数组中的第k个最大大元素
快排解法
class Solution {
public int findKthLargest(int[] nums, int k) {
return findKthLargest(nums, k-1, 0, nums.length-1);
}
public int findKthLargest(int[] nums, int k, int left, int right) {
int p = partition(nums, left, right);
if (p == k) {
return nums[p];
} else if (p > k) {
return findKthLargest(nums, k, left, p-1);
} else {
return findKthLargest(nums, k, p+1, right);
}
}
private int partition(int[] nums, int left, int right) {
int p = nums[left];
int l = left;
int r = right;
while (l < r) {
while (l < r && nums[r] < p) {
r--;
}
while (l < r && nums[l] >= p) {
l++;
}
if (l < r) {
int t = nums[r];
nums[r] = nums[l];
nums[l] = t;
}
}
nums[left] = nums[r];
nums[r] = p;
return r;
}
}
完全基于快速排序的思路,执行patition函数进行“二分”,只是相当于修改了快排的主函数
快排思路见-->快排
堆排序解法
// todo
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~