数组中的第K个最大元素

题目链接:

215. 数组中的第K个最大元素 - 力扣(LeetCode)

题解:

首当其冲的方法是 排序 然后找到第k个最大的元素

js内置了sort方法,但是我还是自己回忆了一下快速排序(下次回忆一下归并排序)当然快排没过,排序算法应当是根本数据量来选择对应的算法,而不是用一个能搞好

code:

javascript 复制代码
var findKthLargest = function(nums, k) {
    if (nums.length === 0) return 0;
    mySort(nums);
    return nums[nums.length - k]; // 修正索引
};

贴出快排算法:

javascript 复制代码
function mySort(nums, start = 0, end = nums.length - 1) {
    if (start >= end) return;
    
    let temp = nums[start];
    let left = start;
    let right = end;
    
    while (left < right) {
        while (nums[right] > temp && left < right) right--;
        while (nums[left] <= temp && left < right) left++;
        
        if (left < right) {
            [nums[left], nums[right]] = [nums[right], nums[left]];
        }
    }
    
    [nums[start], nums[left]] = [nums[left], nums[start]];
    
    mySort(nums, start, left - 1);
    mySort(nums, left + 1, end);
}
相关推荐
样例过了就是过了4 分钟前
LeetCode热题100 分割回文串
数据结构·c++·算法·leetcode·深度优先·dfs
Yvonne爱编码26 分钟前
JAVA数据结构 DAY8-堆
java·数据结构·python
带娃的IT创业者37 分钟前
WeClaw 心跳与重连实战:指数退避算法如何让 WebSocket 在弱网环境下的连接成功率提升 67%?
python·websocket·网络协议·算法·fastapi·实时通信
Morwit1 小时前
【力扣hot100】 85. 最大矩形
c++·算法·leetcode·职场和发展
艾醒1 小时前
MiniMax M2.5:从黑马到全球顶流的"前世今生"与趣闻
算法
m0_528174451 小时前
C++中的代理模式变体
开发语言·c++·算法
2401_883035462 小时前
C++代码风格检查工具
开发语言·c++·算法
啊哦呃咦唔鱼2 小时前
LeetCode hot100-438 找到字符串中所以字母异位词
算法·leetcode·职场和发展
重生之后端学习2 小时前
136. 只出现一次的数字
开发语言·算法·leetcode·职场和发展·深度优先
见叶之秋2 小时前
详解单链表(含链表的实现过程)
数据结构·链表