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

day57—快速(选择/排序)—数组中的第 K 个最大元素(LeetCode-215)

题目描述

给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。

请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。

你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。

示例 1:

输入: [3,2,1,5,6,4], k = 2输出: 5

示例 2:

输入: [3,2,3,1,2,4,5,5,6], k = 4输出: 4

提示:

  • 1 <= k <= nums.length <= 105
  • -104 <= nums[i] <= 104

解决方案:

1、lambda 表达式+暴力搜索

2、快速排序:目的是寻找下标(len-k)和对应下标的值

(一)函数源码:

class Solution {
public:int findKthLargest(vector<int>& nums, int k) {sort(nums.begin(),nums.end(),[](int &a,int &b){return a>b;});return nums[k-1];}
};

(二)函数源码:

class Solution {
public:int findKthLargest(vector<int>& nums, int k) {int left=0,right=nums.size()-1,target=nums.size()-k;int mid;while(left<right){mid=quickSelection(nums,left,right);//寻找下标if(mid==target)     return nums[mid];if(mid<target)      left=mid+1;else                right=mid-1;}return nums[left];}//x:排布值//right_max:最大右区间int quickSelection(vector<int>&nums,int x,int right_max){int i = x;//对 left 进行排布,区间从 left+1 开始int j = right_max;int ans=nums[x];while(1){ //左区间寻找下标while(i<right_max && nums[i]<=ans){i++;}//右区间while(x<j && nums[j]>ans){j--;}if(i>=j)    break;//选择完成,终止循环swap(nums[i],nums[j]);}swap(nums[x],nums[j]);return j;}
};
http://www.xdnf.cn/news/8409.html

相关文章:

  • 国家网络身份认证公共服务管理办法
  • nginx配置跨域请求,后台不用配置啦,完美
  • vue 水印组件
  • 【Dv3Admin】插件 dv3admin_chatgpt 优化支持多种启动方式实现SSE效果
  • QT之巧用对象充当信号接收者
  • Linux进程 线程 进程间通信 IPC——管道
  • 全国青少年信息素养大赛-python编程—省赛真题—卡牌游戏
  • Redis配置文件详解
  • 树 Part 10
  • JFace中MVC的表的单元格编辑功能的实现
  • Datawhale_PyPOTS_task6
  • 【安全攻防与漏洞​】​​HTTPS中的常见攻击与防御​​
  • 机器人强化学习入门学习笔记(三)
  • 洛谷 P1800 software(DP+二分)【提高+/省选−】
  • 三步快速部署一个本地Windows/Linux大语言模型ChatGLM(环境配置+权重下载+运行)
  • AI架构分层原则
  • Stack主题遇到的问题
  • C# WinForm应用程序多语言实现全面指南
  • deepseek组合使用
  • 测试关键点
  • 【Kafka】编写消费者开发模式时遇到‘未解析的引用‘SIGUSR1’’
  • 掌握递归:编程中的优雅艺术
  • 精益数据分析(79/126):从黏性到爆发——病毒性增长的三种形态与核心指标解析
  • Swagger、Springfox、Springdoc-openapi 到底是什么关系
  • 使用 GPUStack 纳管摩尔线程 GPU 进行大语言模型和文生图模型的推理
  • ASPICE认证 vs. 其他标准:汽车软件开发的最优选择
  • C# UDP协议:核心原理、高效实现与实战进阶指南​
  • 2025语音语聊系统源码开发深度解析:WebRTC与AI降噪技术如何重塑语音社交体验
  • 智能存储如何应对极端环境挑战?忆联独家解锁PCIe 5.0固态存储“抗辐射”黑科技,重新定义数据安全防护新高度
  • 机会成本与沉没成本:如何做出理性经济决策