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

LeetCode:74.数组中的第K个最大元素

目录

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


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

这道题通过堆排序解决,我们建立一个最大堆,将堆顶的K - 1个元素删除,留下的就是第K大的

class Solution {
public:void maxHeap(vector<int>& nums, int parent, int heapsize){int left = parent * 2 + 1, right = parent * 2 + 2;int maxsum = parent;if(left < heapsize && nums[left] > nums[maxsum]) maxsum = left;if(right < heapsize && nums[right] > nums[maxsum]) maxsum = right;if(maxsum != parent){swap(nums[maxsum], nums[parent]);maxHeap(nums, maxsum, heapsize);}}void buildMaxHeap(vector<int>& nums, int heapsize){for(int i = heapsize; i >= 0; i--)maxHeap(nums, i, heapsize);}int findKthLargest(vector<int>& nums, int k) {int heapsize = nums.size();buildMaxHeap(nums, heapsize);for(int i = nums.size() - 1; i >= nums.size() - k + 1; i--){swap(nums[0], nums[i]);--heapsize;maxHeap(nums, 0, heapsize);}return nums[0];}
};

http://www.dtcms.com/a/414442.html

相关文章:

  • 学习游戏制作记录(boss的制作)
  • 快速排序(含hoare版本、挖坑版本和前后指针版本)
  • LeetCode:77.买卖股票的最佳时机
  • Apache Airflow:让复杂工作流自动化变得简单优雅
  • 精读《C++20设计模式》——创造型设计模式:原型模式
  • IDEA配置Maven教程
  • OpenLayers地图交互 -- 章节十五:鼠标滚轮缩放交互详解
  • [Python编程] Python3 错误与异常
  • 动态代理 java原生 vs Cglib
  • MQTT协议基础知识速成(智能家居项目)
  • 北京网站建设认知网络推广公司服务内容
  • 爬虫疑难问题解决方案整理
  • 如何制作PDF文件目录?
  • 左右翻网站模版网页美工设计教程
  • 牛客小白月赛121
  • 深入理解目标文件:从ELF格式到链接核心
  • Java系列知识之 ~ Spring 与 Spring Boot 常用注解对比说明
  • 郫县建设局网站wordpress如何运行
  • LeetCode 114.二叉树展开为链表
  • 机器人中的电机与扭矩入门
  • 站长平台如何推广自己的网站怎么做网页版网站
  • 深入理解BFC:解决margin折叠和浮动高度塌陷的利器
  • Spec Kit - 规范驱动开发工具包
  • 具有价值的常州做网站免费进销存软件哪个简单好用
  • creo二次开发seo职位信息
  • Windows 10 环境下 Redis 编译与运行指南
  • 【编号206】房地产统计年鉴2002~2023
  • 某大型广告公司实习感受
  • 【Day 68】Zabbix-自动监控-Web检测-分布式监控
  • 企业网站建设公司公司网站开发客户挖掘