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

相关推荐
ZC跨境爬虫21 小时前
跟着 MDN 学 HTML day_10:(超链接核心语法+路径规则)
前端·css·笔记·ui·html·edge浏览器
GISer_Jing21 小时前
AI原生前端工程化进阶实践:从流式交互架构到端云协同全链路落地
前端·人工智能·后端·学习
被考核重击21 小时前
Vue响应式原理(下)
前端·javascript·vue.js
超级码力6661 天前
【Latex文件架构】Latex文件架构模板
算法·数学建模·信息可视化
ZC跨境爬虫1 天前
跟着 MDN 学 HTML day_9:(信件语义标记)
前端·css·笔记·ui·html
穿条秋裤到处跑1 天前
每日一道leetcode(2026.04.29):二维网格图中探测环
算法·leetcode·职场和发展
前端老石人1 天前
HTML 字符引用完全指南
开发语言·前端·html
matlab_xiaowang1 天前
Redux 入门:JavaScript 可预测状态管理库
开发语言·javascript·其他·ecmascript
Merlos_wind1 天前
HashMap详解
算法·哈希算法·散列表
幼儿园技术家1 天前
前端如何设计权限系统(RBAC / ABAC)?
前端