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

相关推荐
忆锦紫5 分钟前
图像增强算法:Gamma映射算法及MATLAB实现
开发语言·算法·matlab
t1987512816 分钟前
基于自适应Chirplet变换的雷达回波微多普勒特征提取
算法
guygg8823 分钟前
采用PSO算法优化PID参数,通过调用Simulink和PSO使得ITAE标准最小化
算法
qq_4198540527 分钟前
CSS动效
前端·javascript·css
老鼠只爱大米29 分钟前
LeetCode算法题详解 239:滑动窗口最大值
算法·leetcode·双端队列·滑动窗口·滑动窗口最大值·单调队列
烛阴29 分钟前
3D字体TextGeometry
前端·webgl·three.js
桜吹雪1 小时前
markstream-vue实战踩坑笔记
前端
南村群童欺我老无力.1 小时前
Flutter应用鸿蒙迁移实战:性能优化与渐进式迁移指南
javascript·flutter·ci/cd·华为·性能优化·typescript·harmonyos
mit6.8241 小时前
序列化|质数筛|tips|回文dp
算法
C_心欲无痕1 小时前
nginx - 实现域名跳转的几种方式
运维·前端·nginx