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

网站首页模块新手怎样做网站

网站首页模块,新手怎样做网站,郑州流产最安全的医院,图书馆 网站开发 总结215. 数组中的第K个最大元素 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 class…

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

给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。

请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。

你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。

class Solution {
public:void maxHeapify(vector<int>& a, int i, int heapSize) {int l = i * 2 + 1, r = i * 2 + 2, largest = i;if (l < heapSize && a[l] > a[largest]) {largest = l;} if (r < heapSize && a[r] > a[largest]) {largest = r;}if (largest != i) {swap(a[i], a[largest]);maxHeapify(a, largest, heapSize);}}void buildMaxHeap(vector<int>& a, int heapSize) {for (int i = heapSize / 2 - 1; i >= 0; --i) {maxHeapify(a, 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;maxHeapify(nums, 0, heapSize);}return nums[0];}
};

堆排序方法,实际上时间复杂度不满足要求,但主要想学一学堆排序

堆是一个完全二叉树,对于最大堆,根节点一定大于其子节点

这里的逻辑就是,将整个数组构建成最大堆,执行k-1次"移除堆顶元素"操作(将堆顶元素与堆尾交换并调整堆),此时堆顶元素就是第k大的元素

主要内容还是如何维护最大堆,这里通过将栈顶与栈末交换实现栈顶元素移除,接着不断交换根节点和较大的子节点,直至根节点大于两个子节点,从而保持最大栈的性质

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

相关文章:

  • 温州seo网站推广企业做网站需要注意事项
  • 网站服务器配置沧州市网络公司
  • dw做网站简单首页52麻将官方网站做代理
  • 网站设计建设合同是高校图书馆网站的建设的重要性
  • 周口规划建设局网站电子商务网站软件建设核心
  • 天津平台网站建设方案建设银行官方网站个人系统板块
  • 哪个网站有免费空间linux建站和wordpress
  • 第一免费营销型网站河南省和建设厅网站
  • 网站建设分几块游惠萍建盏简介
  • 网站改版 方案更改wordpress登录地址
  • 站酷网海报素材图片网站做打火机如何
  • wordpress左右滑动相册老网站怎么优化
  • 做网站首页有什么房产类网站制作商
  • 企业网站cms 系统wordpress必备文件组合
  • 网站建设方案 流程网站建设教程百度网盘
  • 深圳网站建设专业公司设计制作公司网站
  • 灰色系网站.网站建设风险
  • 事业单位网站建设辽宁响应式网站建设价格
  • 设置网站字体专门做美食的网站
  • 国外做螺栓比较好的网站个人网站有哪些举例
  • seo需求兰州快速seo整站优化招商
  • 长春自助建站模板天猫网页版
  • 白云网站建设哪家好网页制作教程网站
  • 做网站的服务器多少钱网络推广目标计划
  • 企业网站建设个人博客郑州app软件开发公司
  • 手游传奇网站发布北京seo加盟
  • 坂田杨美企业网站建设广州网站建设丿新科送推广
  • 网站集群 建设方案室内设计联盟 官网
  • 功能网站建设多少钱做静态网站选用什么服务器
  • 六安市公司网站建设有什么好的网站