面试必考精华版Leetcode215. 数组中的第K个最大元素

题目:


代码(2023年10月27日首刷看解析):

cpp 复制代码
class Solution {
public:
    int findKthLargest(vector<int>& nums, int k) {
        return quickselect(nums,k);
    }

    int quickselect(vector<int>& nums,int k){
        vector<int> big,equel,small;
        int pivot = nums[rand()%nums.size()];
        for(auto num:nums){
            if(num>pivot){
                big.push_back(num);
            }else if(num<pivot){
                small.push_back(num);
            }else{
                equel.push_back(num);
            }
        }
        if(k<=big.size()){
            return quickselect(big,k);
        }
        else if(nums.size()-small.size()<k){
            return quickselect(small,k-(nums.size()-small.size()));
        }
        return pivot;
    }
};

时间复杂度为O(N)

相关推荐
Maỿbe几秒前
重走力扣hot的矩阵
算法·leetcode·矩阵
朔北之忘 Clancy1 分钟前
2025 年 12 月青少年软编等考 C 语言二级真题解析
c语言·开发语言·c++·学习·算法·青少年编程·题解
小码吃趴菜2 分钟前
【无标题】
前端·chrome
2301_790300963 分钟前
C++与增强现实开发
开发语言·c++·算法
每天要多喝水22 分钟前
贪心算法专题Day18
算法·贪心算法
毅炼1 小时前
hot100打卡——day14
java·数据结构·算法·leetcode·ai·深度优先·哈希算法
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 基于HTML5的购物网站的设计与实现为例,包含答辩的问题和答案
前端·html·html5
liliangcsdn1 小时前
RL中GAE的计算过程详解
大数据·人工智能·算法
Hgfdsaqwr1 小时前
内存泄漏检测与防范
开发语言·c++·算法
C雨后彩虹1 小时前
优雅子数组
java·数据结构·算法·华为·面试