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

相关推荐
●VON13 小时前
React Native for OpenHarmony:ActivityIndicator 动画实现详解
javascript·学习·react native·react.js·性能优化·openharmony
liu_endong14 小时前
杰发科技AC7840——打印所有GPIO的PORT配置寄存器
mcu·算法·杰发科技·autochips·车规芯片
霍理迪14 小时前
JS其他常用内置对象
开发语言·前端·javascript
tao35566714 小时前
HTML-03-HTML 语义化标签
前端·html
老鼠只爱大米14 小时前
LeetCode经典算法面试题 #199:二叉树的右视图(BFS双队列法、DFS递归法等多种实现方案详细解析)
算法·leetcode·二叉树·dfs·bfs·深度优先搜索·右视图
历程里程碑14 小时前
子串-----和为 K 的子数组
java·数据结构·c++·python·算法·leetcode·tornado
小马_xiaoen14 小时前
IndexedDB 从入门到实战:前端本地大容量存储解决方案。
前端
一起养小猫14 小时前
Flutter for OpenHarmony 进阶:表达式解析算法与计算器核心实现
算法·flutter·harmonyos
jiayong2314 小时前
Vue2 与 Vue3 常见面试题精选 - 综合宝典
前端·vue.js·面试
池央14 小时前
贪心-最长递增子序列
算法·贪心算法