面试必考精华版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)

相关推荐
朱峥嵘(朱髯)几秒前
数据库如何根据估计 NDV,以及通过分区 NDV 推导全局 NDV
数据库·算法
qq_41985405几秒前
Excel预览
前端
山上三树2 分钟前
详细介绍 C 语言 typedef 及与 #define 的核心对比
c语言·数据结构·算法
释怀°Believe8 分钟前
Daily算法刷题【面试经典150题-7️⃣位运算/数学/】
算法·面试·职场和发展
PieroPc10 分钟前
用FastAPI 后端 和 Vue3 前端写一个博客系统 例
前端·vue·fastapi
赵民勇18 分钟前
ES5中prototype和prototype.constructor详解
javascript
2401_8762213418 分钟前
因数个数、因数和、因数积
c++·算法
xiaoyustudiowww19 分钟前
fetch异步简单版本(Tomcat 9)
java·前端·tomcat
TOPGUS20 分钟前
谷歌Chrome浏览器即将对HTTP网站设卡:突出展示“始终使用安全连接”功能
前端·网络·chrome·http·搜索引擎·seo·数字营销
C_心欲无痕27 分钟前
ts - 模板字面量类型与 `keyof` 的魔法组合:`keyof T & `on${string}`使用
linux·运维·开发语言·前端·ubuntu·typescript