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

青岛胶州网站建设动漫制作专业就业方向和前景

青岛胶州网站建设,动漫制作专业就业方向和前景,城阳网站改版,建设银行账户网站查询密码215数组中的第K个最大元素 题目描述 给定整数数组 nums 和整数 k#xff0c;请返回数组中第 k 个最大的元素。 请注意#xff0c;你需要找的是数组排序后的第 k 个最大的元素#xff0c;而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。…215数组中的第K个最大元素 题目描述 给定整数数组 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 方法一小顶堆 class Solution {public int findKthLargest(int[] nums, int k) {PriorityQueueInteger pq new PriorityQueue(); // min heapfor (int val : nums) {pq.add(val);if (pq.size() k) {pq.poll();}}return pq.peek();} }在这个代码中我们首先创建一个优先队列pq。然后我们遍历数组nums对于每个元素我们将其添加到队列中。如果队列的大小大于k我们就删除队列中的最小元素。最后我们返回队列的头部元素这就是第k个最大的元素。 这个算法的时间复杂度是O(n log k)因为我们需要对每个元素进行堆操作堆操作的时间复杂度是O(log k)。虽然题目要求时间复杂度为O(n)但是这个算法在实际中的性能已经非常好了因为log k通常远小于n。 方法二快速选择 class Solution {public void swap(int[] nums,int a,int b){int tem nums[a];nums[a] nums[b];nums[b] tem;}public int getIndex(int[] nums,int left,int right){int m (rightleft) / 2 ;int n nums[right];int p left;for(int i left;iright;i){if(nums[i] n){swap(nums,p,i);p;}}swap(nums,p,right);return p;}public int quickSelect(int[] nums,int left,int right,int k){if(right left){return nums[left];}int index getIndex(nums,left,right);if(index k){return nums[index];}else if(index k){return quickSelect(nums,index1,right,k);}else{return quickSelect(nums,left,index-1,k);}}public int findKthLargest(int[] nums, int k) {return quickSelect(nums,0,nums.length-1,nums.length - k);} }快速选择是快速排序的一个优化它在平均情况下的时间复杂度是O(n)。 在这个代码中我们首先使用快速选择算法来找到第k个最大的元素。快速选择算法的基本思想是我们选择一个枢轴元素然后将数组分为两部分一部分是小于枢轴的元素另一部分是大于枢轴的元素。然后我们根据k和枢轴的位置决定是在左边的部分还是右边的部分继续查找。如果k等于枢轴的位置那么枢轴就是我们要找的元素。
http://www.w-s-a.com/news/112075/

相关文章:

  • wordpress无法查看站点西安优秀高端网站建设服务商
  • 固始网站制作熟悉免费的网络营销方式
  • 做网站到a5卖站赚钱搜索引擎优化代理
  • 沈阳网站建设包括win10优化
  • 做百度手机网站点击软网站seo优化徐州百度网络
  • 徐州专业网站制作标志设计作业
  • 自己可以做网站空间吗海天建设集团有限公司网站
  • 教学督导网站建设报告aspcms网站图片不显示
  • 网站开发公司成本是什么门户网站宣传方案
  • 上海 企业网站建设网站怎么开通微信支付
  • 饮料网站建设wordpress主题猫
  • 网站建设需要编码不有没有专门的网站做品牌授权的
  • 做爰在线网站免费空间列表
  • 网站外链建设工作总结郑州网站建设扌汉狮网络
  • 建设企业网站的需要多长时间网站使用说明书模板
  • 建网站首页图片哪里找263企业邮箱网页版登录
  • 盐城网站建设电话高端定制网站
  • 成都网站seo技术施工企业样板先行制度
  • 高端网站建设电话河北建筑工程信息网站
  • 亲 怎么给一个网站做备份财务系统有哪些软件
  • wordpress重新手机优化专家下载
  • 怎样把网站做成软件设计工作室怎么接单
  • html网站设计实例代码重庆多个区划定风险区
  • 推广方案设计同一个网站可以同时做竞价和优化
  • 论坛网站开发 go电商扶贫网站建设
  • 个人建站教程优秀的定制网站建设
  • 农村建设集团有限公司网站下载百度极速版
  • 微信公众号个人可以做网站么做企业网站需要哪些
  • 如何用付费音乐做视频网站wordpress如何设置首页
  • 杨凯做网站网站首页 排版