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

手撕算法-数组中的第K个最大元素

描述

image.png

分析

使用小根堆,堆元素控制在k个,遍历数组构建堆,最后堆顶就是第K个最大的元素。

代码

class Solution {public int findKthLargest(int[] nums, int k) {// 小根堆PriorityQueue<Integer> queue = new PriorityQueue<>();for (int i = 0; i < nums.length; i++) {if (queue.size() < k) {// 堆元素数小于k,直接放入queue.offer(nums[i]);} else {if (nums[i] >= queue.peek()) {// 当前元素大于堆顶元素,弹出堆顶,放入新的queue.poll();queue.offer(nums[i]);}}}return queue.peek();}
}

image.png

面试公司

http://www.lryc.cn/news/325853.html

相关文章:

  • 【vue】computed和watch的区别和应用场景
  • ARM.day8
  • SpringCloud Gateway工作流程
  • 西井科技与安通控股签署战略合作协议 共创大物流全新生态
  • CCCorelib 点云RANSAC拟合球体(CloudCompare内置算法库)
  • map china not exists. the geojson of the map must be provided.
  • Redis如何删除大key
  • JRT菜单
  • 《海王2》观后感
  • [蓝桥杯 2023 省 A] 颜色平衡树:从零开始理解树上莫队 一颗颜色平衡树引发的惨案
  • maya打开bvh脚本
  • 【JavaSE】数据类型和运算符
  • Docker 哲学 - ip 的组成规则 与 网关介绍
  • 数学建模竞赛真的是模型解题一般,但是论文出彩而获奖的吗?
  • 深度学习常见的三种模型
  • 接口自动化测试分层设计与实践总结
  • 集合(下)Map集合的使用
  • AAPT: error: resource android:attr/dialogCornerRadius not found.
  • 数字功放VS模拟功放,选择适合你的音频解决方案
  • 5.88 BCC工具之tcpsynbl.py解读
  • GVRP实现vlan的自动创建和注册
  • Oracle VM VirtualBox修改磁盘大小
  • 【嵌入式硬件】步进电机
  • FlyControls 是 THREE.js 中用于实现飞行控制的类,它用于控制摄像机在三维空间中的飞行。
  • 【Java程序设计】【C00366】基于(JavaWeb)Springboot的纹理生产图片系统(有论文)
  • 编译原理Lab. 1 初代编译器实验说明和要求
  • python判断工作日,节假日
  • 练习4-权重衰减(李沐函数简要解析)
  • websocket 中 request-line 中的URI编码问题
  • 为何ChatGPT日耗电超50万度?