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

相关推荐
dsyyyyy11011 分钟前
CSS盒子模型
前端·css·css3
Liangwei Lin5 分钟前
LeetCode 283. 移动零
算法
冰暮流星15 分钟前
javascript之默认事件
开发语言·javascript·ecmascript
fengci.18 分钟前
CTF+随机困难题目
android·开发语言·前端·学习·php
liulilittle18 分钟前
LLAMA-CLI 运行千问3.6(R9-7945HX+64G+RTX40608G)
java·前端·llama
Cyber4K25 分钟前
【Python专项】进阶语法-日志分类与分析(2)
开发语言·前端·python
Lenyiin32 分钟前
《LeetCode 顺序刷题》61 - 70
java·c++·python·算法·leetcode·lenyiin
匀泪32 分钟前
云原生(Kubernetes存储)
前端·chrome
岁岁的O泡奶34 分钟前
NSSCTF_crypto_[LitCTF 2023]babyLCG
经验分享·python·算法·密码学·crypto·流密码