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

鞍山手机网站设计用WordPress管理app

鞍山手机网站设计,用WordPress管理app,十大app排行榜,网址登录更新时间:2025-04-04 算法题解目录汇总:算法刷题记录——题解目录汇总技术博客总目录:计算机技术系列博客——目录页 优先整理热门100及面试150,不定期持续更新,欢迎关注! 215. 数组中的第K个最大元素 给…

更新时间:2025-04-04

  • 算法题解目录汇总:算法刷题记录——题解目录汇总
  • 技术博客总目录:计算机技术系列博客——目录页

优先整理热门100及面试150,不定期持续更新,欢迎关注!


215. 数组中的第K个最大元素

给定整数数组 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 <= 10^5
  • -10^4 <= nums[i] <= 10^4

方法:三向切分快速选择法

利用快速选择算法结合三向切分,高效定位第K大元素。

  1. 三向切分

    • 将数组分为三个区域:大于基准值、等于基准值、小于基准值;
    • 采用类似荷兰国旗问题的分区方式,一次遍历完成分类;
  2. 递归选择

    • 根据当前分区后的元素数量分布,决定递归处理方向;
    • 大于区域元素足够时递归处理前部;
    • 数量不足但包含等于区域时直接返回基准值;
    • 否则递归处理后部并调整k值;

随机选择基准值避免最坏情况,每次递归至少排除一个区域元素。

代码实现(Java):

class Solution {public int findKthLargest(int[] nums, int k) {return quickSelect(nums, 0, nums.length - 1, k);}private int quickSelect(int[] nums, int left, int right, int k) {if (left == right) {return nums[left];}Random rand = new Random();int pivotIndex = left + rand.nextInt(right - left + 1);int pivot = nums[pivotIndex];// 三向切分(荷兰国旗问题)int low = left;int high = right;int mid = left;while (mid <= high) {if (nums[mid] > pivot) {  // 大于pivot的交换到前部swap(nums, low, mid);low++;mid++;} else if (nums[mid] < pivot) { // 小于pivot的交换到后部swap(nums, mid, high);high--;} else {  // 等于时继续后移mid++;}}// 计算各区域元素数量int gtCount = low - left;       // 大于pivot的数目int eqCount = high - low + 1;   // 等于pivot的数目if (k <= gtCount) {             // 目标在大于区域return quickSelect(nums, left, low - 1, k);} else if (k <= gtCount + eqCount) { // 目标在等于区域return pivot;} else {                        // 目标在小于区域return quickSelect(nums, high + 1, right, k - gtCount - eqCount);}}private void swap(int[] nums, int i, int j) {int temp = nums[i];nums[i] = nums[j];nums[j] = temp;}
}

复杂度分析

平均时间复杂度 O(n),最坏情况 O(n^2)


声明

  1. 本文版权归 CSDN 用户 Allen Wurlitzer 所有,遵循CC-BY-SA协议发布,转载请注明出处。
  2. 本文题目来源 力扣-LeetCode ,著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

文章转载自:

http://CYrugPBY.nqyzg.cn
http://L0Rlj6D3.nqyzg.cn
http://V5tehEtp.nqyzg.cn
http://8qCL2TlF.nqyzg.cn
http://ymb4jVUH.nqyzg.cn
http://LEZsG81C.nqyzg.cn
http://9IrlH52m.nqyzg.cn
http://JNSoOPn0.nqyzg.cn
http://oRm6zD1P.nqyzg.cn
http://mVko5Slt.nqyzg.cn
http://pLl4XE9F.nqyzg.cn
http://iPS0Al7W.nqyzg.cn
http://Vlgs867h.nqyzg.cn
http://4pKGokuD.nqyzg.cn
http://IPGS6NMl.nqyzg.cn
http://CYCh7yiv.nqyzg.cn
http://lFtkChGq.nqyzg.cn
http://spcP8UQU.nqyzg.cn
http://0I4MU6fe.nqyzg.cn
http://qUBC9oWQ.nqyzg.cn
http://q8D8Ujzw.nqyzg.cn
http://qzxZbzzM.nqyzg.cn
http://YErBlqSG.nqyzg.cn
http://E2AQyhi0.nqyzg.cn
http://jRNLKTaA.nqyzg.cn
http://mZ0JyH10.nqyzg.cn
http://ffdZhzwv.nqyzg.cn
http://WMDwDkib.nqyzg.cn
http://wTrbUFdx.nqyzg.cn
http://7hXRhIh4.nqyzg.cn
http://www.dtcms.com/wzjs/717169.html

相关文章:

  • 网站开发简历 自我评价app开发公司公司
  • 响应式模板网站模板网站建设 维护 编程
  • 东莞站福公司工资线上产品推广方案
  • 做网站怎么收费wordpress lnmp
  • 制作网站哪里做青岛seo网站排名优化
  • 六安网站建设公司营销型网站建设口碑好
  • 昆明cms建站模板wordpress装修公司模板
  • 深圳成品网站超市小户型室内装修设计公司网站
  • 烹饪考试试卷哪个网站可以做网站建设零基础
  • 学校网站建设与维护方案中国建设银行网站保定五四路
  • 专门做兼职的网站wordpress 4.6.1 中文
  • 做网站需要购买地域名吗服饰类网站开发项目
  • 非商业组织的网站风格官网做的好看的网站有哪些
  • 昆明网站建设创意php网站开发职责
  • 网站版本功能列表永川做网站
  • 网站建设的报价网站建设捌金手指专业7
  • 郑州做网站优化地址做网站放哪个科目
  • 事业单位网站方案php做网站的源码
  • 河南省住房与城乡建设部网站jsp网站开发案例
  • WordPress站点地图代码个人简历表模板电子版
  • 大连seo建站公司jsp网站开发中js的问题
  • 免费建站平台哪个好武城网站建设
  • 一站式网站建设东莞网站设计如何
  • 网站改版策划书中国风景摄影网
  • 做视频up主视频网站设计师在线设计平台
  • 哪些网站需要做分享按钮制作网站的软件什么好用
  • 重庆网站优化建设食品包装设计价格
  • 用ps怎么做网站步骤购物商城网站都有哪些功能
  • 网站引导动画怎么做的做网站通常又什么开发完成
  • 医院网站建设需要多少钱wordpress自定义固定连接