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

相关推荐
数字冰雹几秒前
图观 流渲染打包服务器
服务器·前端·github·数据可视化
JarvanMo1 分钟前
Flutter:我在网上看到了一个超炫的动画边框,于是我在 Flutter 里把它实现了出来
前端
returnfalse2 分钟前
前端性能优化-第三篇(JavaScript执行优化)
前端·性能优化
yuzhiboyouye7 分钟前
前端架构师,是架构什么
前端·架构
全马必破三10 分钟前
Buffer:Node.js 里处理二进制数据的 “小工具”
前端·node.js
web安全工具库14 分钟前
Linux 高手进阶:Vim 核心模式与分屏操作详解
linux·运维·服务器·前端·数据库
一枚前端小能手19 分钟前
🔥 SSR服务端渲染实战技巧 - 从零到一构建高性能全栈应用
前端·javascript
Komorebi_999919 分钟前
Vue3 provide/inject 详细组件关系说明
前端·javascript·vue.js
兮山与21 分钟前
算法3.0
算法
用户14125016652733 分钟前
一文彻底掌握 ECharts:从配置解读到实战应用
前端