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

相关推荐
英俊潇洒美少年几秒前
vue3的编译优化
前端
DaHai9 分钟前
在 Windows 上安装 uv(高性能 Python 包管理器)
前端
Lee川16 分钟前
🔍 React 面试官眼中的“秘密武器”:深度剖析 useRef
前端·react.js·面试
小文大数据19 分钟前
python实现HTML转PDF
java·前端·数据库
羊小蜜.20 分钟前
Mysql 03: 连接查询全解——内连接、外连接与复合条件查询
数据库·mysql·算法·连接查询
vivo互联网技术28 分钟前
CVPR 2026 | C²FG:用分数差异分析提高条件生成中CFG的引导
人工智能·算法·aigc
永恒_顺其自然32 分钟前
Java Web 传统项目异步分块上传系统实现方案
java·开发语言·前端
后藤十八里38 分钟前
维普期刊逆向笔记
javascript·笔记·js逆向
百撕可乐40 分钟前
NextJS官网实战01:Vue与React的区别
前端·react.js·前端框架
Можно43 分钟前
Vue 组件样式隔离完全指南:从原理到实战
前端·javascript·vue.js