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

相关推荐
console.log('npc')几秒前
在 React 中,useRef、ref 属性以及 forwardRef 是处理“引用”(访问 DOM 节点或组件实例)的核心概念
前端·react.js·前端框架
小小小小宇2 分钟前
语法全景对照
前端
数据皮皮侠11 分钟前
1095 《中国城市统计年鉴》面板数据整理
大数据·数据库·人工智能·算法·制造
weixin_7042660514 分钟前
Spring Boot 入门了解
前端·firefox
寒月小酒15 分钟前
3.26 OJ
数据结构·算法
冲浪中台18 分钟前
如何实现低代码源码级交付和私有化部署
前端·低代码·私有化部署·源代码管理
汉克老师23 分钟前
GESP5级C++考试语法知识(十二、递归算法(二))
c++·算法·记忆化搜索·时间复杂度·递归算法·gesp5级·gesp五级
lcreek23 分钟前
计算机网络与图算法:从理论到实践
算法·
炒毛豆24 分钟前
Vue 3 公共组件从封装到全局注册的极简指南
前端·javascript·vue.js
sinat_2554878125 分钟前
JSON·学习笔记
java·开发语言·笔记·算法