当前位置: 首页 > article >正文

面试必考精华版Leetcode215. 数组中的第K个最大元素

题目:


代码(2023年10月27日首刷看解析):

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)


http://www.kler.cn/a/105727.html

相关文章:

  • MySQL8 安装教程
  • 完整http服务器
  • 博客园-awescnb插件-geek皮肤优化-样式优化
  • 重构代码之删除对参数的赋值
  • 关于Qt C++中connect的几种写法
  • css数据不固定情况下,循环加不同背景颜色
  • 大促期间的窜货低价怎么处理
  • 网络协议--TFTP:简单文件传送协议
  • 安装k8s
  • 第六节——Vue中的事件
  • 【深度学习 | Transformer】释放注意力的力量:探索深度学习中的 变形金刚,一文带你读通各个模块 —— 总结篇(三)
  • 2.7每日一题(分段函数不定积分)
  • Node编写获取用户信息接口
  • 华为eNSP配置专题-策略路由的配置
  • [100天算法】-实现 Trie(day 41)
  • element ui el-table表格纵向横向滚动条去除并隐藏空白占位列
  • 前端开发技术栈(工具篇):2023深入了解webpack的安装和使用以及核心概念和启动流程(详细) 63.3k stars
  • Django 实战开发(一)项目搭建
  • NDK交叉编译FFmpeg安卓编译ffmpeg
  • linux可视化运维工具
  • 如何在Postman中使用静态HTTP
  • Kubernetes 特性门控
  • 全连接层是什么,有什么作用?
  • 域控操作三点五:使用策略下发将域用户添加到本地管理员组
  • 【干货】JVS低代码表单基础组件的配置与应用
  • SPP Net 目标检测网络学习笔记 (附代码)