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

随机选择算法

要求时间复杂度为o(n),所有不能排序处理

可以利用快速排序的方法,数组长度为n,第K大为 求n-k位置的数

随机一个数X,用X进行划分,<X,=X,>X区域,如果n-k在=X区域中,返回X即可

如果n-k在小于X的区域,再在该区域重新进行划分,大于X的区域同理,递归下去

class Solution { public int findKthLargest(int[] nums, int k) { int n=nums.length; int ans=0; for(int l=0,r=n-1;l<=r;){ partition(nums,l,r,nums[l+(int) (Math.random()*(r-l+1))]); if(n-k<first){ r=first-1; } else if(n-k>last){ l=last+1; } else{ ans=nums[n-k]; break; } } return ans; } public static int first,last; public static void partition(int[] nums,int l,int r,int x){ first=l; last=r; int i=l; while(i<=last){ if(nums[i]==x){ i++; } else if(nums[i]<x){ swap(nums,first++,i++); } else{ swap(nums,last--,i); } } } public static void swap(int[] nums,int i,int j){ int temp=nums[i]; nums[i]=nums[j]; nums[j]=temp; } }

额外空间复杂度o(1)

http://www.jsqmd.com/news/519674/

相关文章:

  • AI投毒被热议,为什么说百度一下的含金量反而越来越高?
  • React15 - 写sass 样式文件,嵌套的结构好,还是扁平的结构好?
  • 力扣打卡——搜索二维矩阵、相交链表
  • 深入解析NestedScrollableHost在ViewPager2嵌套滑动场景中的应用
  • 守嘉生殖健康咨询培训,线上学习优势盘点,远超线下培训 - 品牌排行榜单
  • 用Python实战Louvain算法:5步搞定社交网络社区发现(附代码)
  • 永磁同步电机三矢量MPC模型预测电流控制 参考文献:《永磁同步电机三矢量模型预测电流控制_徐艳...
  • python基于HIVE旅游评论数据的旅游形象预测系统 爬虫可视化
  • 研发流程设计(上):如何设计 Go 项目的开发流程?
  • 救命神器!8个一键生成论文工具测评:多场景适配,开题报告+毕业论文+科研写作全搞定
  • DQL(数据查询)
  • 基于Gin的高并发RESTful API设计与Prometheus监控集成:云原生应用性能观测系统实现
  • 电商实战:如何用图神经网络提升商品推荐效果(附代码示例)
  • Gemini 3.1 Pro如何从零生成品牌视觉体系,设计师直呼“被抢活”
  • 知网AI率反复降不下来?比话Pallas引擎专治疑难AI率
  • 科研党必备:Python脚本批量下载Sci-Hub文献(附自动更新域名技巧)
  • 阻塞队列 BlockingQueue
  • 特征图融合三剑客:拼接、相加与相乘的实战指南
  • Day13 | Dart 类核心特性:静态成员、对象操作符与继承机制
  • 比话降AI超15%退款是真的吗?退款流程和条件全解析
  • 相场法在水力压裂模拟中越来越火,尤其是COMSOL这种多物理场耦合神器。今天咱们拆解几个典型工况,手把手看裂缝怎么在代码里“长“出来。先拿最简单的单裂缝开刀——
  • [2015] [Gorila DQN] [Massively Parallel Methods for Deep Reinforcement Learning]
  • Java并发避坑:一文搞懂死锁的本质、实例与解决方案
  • Python数据结构完全指南:列表、字典、元组与集合精通
  • Java锁升级深度解析:从偏向锁到重量级锁,一文读懂锁的“进化”之路
  • 为什么比话敢承诺“不达标全额退款“?技术底气在哪里
  • 计算机毕业设计 java 学校社团活动管理系统 JavaWeb 校园社团事务管理平台 基于 SpringBoot 的高校社团活动统筹系统
  • MinIO在Linux上的5个隐藏性能优化技巧(实测提升30%吞吐量)
  • 生殖健康咨询线上培训考试,北京守嘉职业技能,工作学习两不误 - 品牌排行榜单
  • React15 - React15应用Sass使用指南