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

移动网站 案例棋牌源码交易商城

移动网站 案例,棋牌源码交易商城,网站制作时如何分析竞争对手,wordpress 5.0.2安装. - 力扣#xff08;LeetCode#xff09;给定整数数组 nums 和整数 k#xff0c;请返回数组中第 k 个最大的元素。 请注意#xff0c;你需要找的是数组排序后的第 k 个最大的元素#xff0c;而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问…. - 力扣LeetCode给定整数数组 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 105-104  nums[i] 104 思路1基于堆排序的选择方法 排序 - - - 选择排序简单选择、堆排序_c#排序中选择排序中的dui排序-CSDN博客 「调整」 父节点都大于或小于子结点 // 以root为根调整大根堆void heapAdjust(vectorint nums, int root, int heapSize){int i root; // i保存根节点下标for(int j i*2 1; j heapSize; j i*21){// j保存孩子中最大值下标if(j heapSize - 1 nums[j] nums[j1]){j;}if(nums[i] nums[j]){break;}else{swap(nums[i], nums[j]);i j;}}} 「建堆」 将排序码k1k2k3…kn表示成一棵完全二叉树然后从第 n/2个排序码(即树的最后一个非终端结点)开始筛选使由该结点作根结点组成的子二叉树符合堆的定义然后从第 n/2-1 个排序码重复刚才操作直到第一个排序码止。 void buildHeap(vectorintnums, int heapSize){for(int i heapSize / 2; i 0; i--){heapAdjust(nums, i, heapSize);}} 「删除」 将堆中第一个结点二叉树根结点和最后一个结点的数据进行交换k1与kn再将k1~kn-1重新建堆然后k1和kn-1交换再将k1~kn-2重新建堆然后k1和kn-2交换如此重复下去每次重新建堆的元素个数不断减1直到重新建堆的元素个数仅剩一个为止。这时堆排序已经完成则排序码k1k2k3…kn已排成一个有序序列。 class Solution { private:// 以root为根调整大根堆void heapAdjust(vectorint nums, int root, int heapSize){int i root; // i保存根节点下标for(int j i*2 1; j heapSize; j i*21){// j保存孩子中最大值下标if(j heapSize - 1 nums[j] nums[j1]){j;}if(nums[i] nums[j]){break; // 因为从叶子节点向上调节所以没有节点交换其子树也不许变化}else{swap(nums[i], nums[j]);i j; // j节点调整其子树也需要调整}}}void buildHeap(vectorintnums, int heapSize){for(int i heapSize / 2; i 0; i--){heapAdjust(nums, i, heapSize);}}public:int findKthLargest(vectorint nums, int k) {int heapSize nums.size();buildHeap(nums, heapSize);// 第k大数倒数for(int i nums.size() - 1; i nums.size() - k; --i){swap(nums[0],nums[i]);--heapSize;heapAdjust(nums, 0, heapSize);}return nums[0];} }; 思路2基于快速排序的选择方法 排序 - - - 交换排序快速排序、冒泡排序-CSDN博客 class Solution { private:int partition(vectorintnums, int l, int r){int key nums[l];while(l r){while(l r nums[r] key) r--;nums[l] nums[r];while(l r nums[l] key) l;nums[r] nums[l];}nums[l] key;return l;}int quickSelect(vectorint nums, int l, int r, int k){int index partition(nums, l, r);if(index k)return nums[k];elsereturn index k ? quickSelect(nums, index 1, r, k) // index数小于第k数则在index右边查找: quickSelect(nums, l, index - 1, k); // index数大于第k数则在index左边查找}public:int findKthLargest(vectorint nums, int k) {return quickSelect(nums, 0, nums.size() - 1, nums.size() - k); // 返回倒数k位置数} };
http://www.hkea.cn/news/14344078/

相关文章:

  • 国外网站平台有哪些网站建设大作业选题
  • 网站用哪个做新网站备案查询
  • 图片分页网站模板品牌营销咨询公司
  • 漳州电脑网站建设消防公司宣传册设计样本
  • 做商城网站建设wordpress 即时通迅
  • 3g微网站是什么网站备案幕布申请
  • php网站开发预算文档wordpress局部刷新
  • 出色的网站遵义市汇川区建设厅网站
  • 山东网站备案 论坛深圳比较好的设计工作室
  • 网站开发怎么找客户行业网站的特点
  • 南昌高端网站建设深圳新闻最新消息今天
  • 做网站哪里便宜自己使用原生php做网站性能
  • 百度官方网站下载安装网站设计 seo
  • 做房地产资质是什么网站查店铺设计效果图店面
  • 外贸网站怎么做比较好自己的域名怎么做网站
  • 长垣有做网站设计的吗360安全导航网址
  • 网站开发代理wordpress存储视频教程
  • 网站模版上线需要什么意思百度推广下载
  • 企业网站的建设与实现手机网站设计建设
  • 怎么查询建设通网站大访问量的网站怎么做优化
  • html5移动网站开发实例手机如何创建公众号
  • 南宁微信网站建设wordpress 如何删除主题
  • 个人如何做微商城网站设计苏州网站建设中心
  • 灰色关键词排名代做做seo时网站更新的目的
  • 2017做网站怎么赚钱太原网页设计培训班
  • php网站服务建设网络网站建设推广
  • 网站开发的机遇网站开发软件h开头的
  • 北京工商注册查询系统官网wordpress代码优化插件
  • 网站建设精美模板国家企业信用信息公示系统平台
  • 南京做网站营销鲜花网网站开发的意义