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

LeetCode hot100-74

https://leetcode.cn/problems/kth-largest-element-in-an-array/description/?envType=study-plan-v2&envId=top-100-liked

215. 数组中的第K个最大元素
已解答
中等
相关标签
相关企业
给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。

这题的解法在leetcode评论区里找的

这个快排写得比较简洁。是从大到小排的。就找前面的第k-1个位置就行。用rand作为枢纽也可以加速。

class Solution {Random rand=new Random();public int findKthLargest(int[] nums, int k) {return quickSort(nums,k,0,nums.length-1);}private int quickSort(int[] nums,int k,int left,int right){int index=rand.nextInt(right-left+1)+left;int flag=nums[index];nums[index]=nums[left];int i=left,j=right;while (i<j){while (i<j&&nums[j]<=flag) j--;nums[i]=nums[j];while (i<j&&nums[i]>=flag) i++;nums[j]=nums[i];}nums[i]=flag;if (i==k-1) return nums[i];else if (i<k-1) return quickSort(nums,k,i+1,right);else return quickSort(nums,k,left,i-1);}
}

http://www.mrgr.cn/news/80159.html

相关文章:

  • React 内置的Hook学习
  • Flink CDC 读取oracle库数据性能优化
  • Z240001 基于Java+MySQL+SpringBoot+Vue实现的酒店管理系统的设计与实现
  • Java代审之常见的文件读取方法
  • 方法引用和lambda表达式的奥妙
  • 电感2222
  • #渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍01
  • freeswitch(开启支持MCU视频会议,使用mod_av模块)
  • 设计一个基础JWT的多开发语言分布式电商系统
  • Python课设-谁为影狂-豆瓣数据【数据获取与预处理课设】
  • 前端(五)css属性
  • C++知识整理day5容器——string容器
  • SQL server学习03-创建和管理数据表
  • 【arm】程序跑飞,SWD端口不可用修复(N32G435CBL7)
  • 40 list类 模拟实现
  • C#使用实体类Entity Framework Core操作mysql入门:从数据库反向生成模型2 处理连接字符串
  • 利用ESP-01S中继实现STM32F103C8T6与MQTT服务器的串口双向通信
  • Linux:Git
  • canal安装使用
  • [C++]多态