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

企业网站seo优化怎么做宁波租房网

企业网站seo优化怎么做,宁波租房网,全国旅游景点网站开源,工商网企业信息查询数组中的第K个最大元素 问题描述 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。详见le…

数组中的第K个最大元素

问题描述

给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。详见leetcode215

问题分析

可以创建一个包含k个元素的最小堆,初始时,将数组元素中的前K个放入堆中,之后,遍历数组中的其他元素,与堆顶元素比较,只有大于堆顶元素,才将该元素与堆顶元素替换(即先执行删除,在执行插入),遍历结束后,堆顶元素即是数组中第K大的元素。

代码实现

public int findKthLargest(int[] nums, int k) {if(k>nums.length){return -1;}PriorityQueue<Integer> minHeap = new PriorityQueue<>(4, (a, b) -> a - b);for(int i=0;i<k;i++){minHeap.offer(nums[i]);}for(int i=k;i<nums.length;i++){if(nums[i]>minHeap.peek()){minHeap.poll();minHeap.offer(nums[i]);}}return minHeap.poll();
}

堆排序

问题描述

给定整数数组nums,使用堆排序对数组中的元素进行排序。

问题分析

使用堆排序对数组元素进行排序

代码实现

public static void heapSort(int[] nums){PriorityQueue<Integer> minHeap = new PriorityQueue<>(nums.length,(a,b) -> a-b);for (int i = 0; i < nums.length; i++) {minHeap.offer(nums[i]);}for (int i = 0; i < nums.length; i++) {nums[i] = minHeap.poll();}
}

合并K个有序链表

问题描述

给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。详见leetcode23

问题分析

链表数组中存放的其实是每个链表的头节点,可以根据链表的长度创建相同大小的最小堆,将链表中的节点放入堆中,之后,取堆顶元素,即为最小元素,并取出元素的下一个元素放入堆中。

代码实现

public ListNode mergeKLists(ListNode[] lists) {PriorityQueue<ListNode> minHeap = new PriorityQueue<ListNode>((a,b) -> a.val-b.val);for(int i=0;i<lists.length;i++){if(lists[i]!=null){minHeap.offer(lists[i]);}}ListNode vhead = new ListNode(-1);ListNode iter = vhead;while(!minHeap.isEmpty()){ListNode node = minHeap.poll();iter.next = node;iter = node;if(iter.next!=null){minHeap.offer(iter.next);}}return vhead.next;
}

总结

堆查找和排序的应用主要是指堆排序和查找最大最小元素,或者第几大,第几小元素的问题上。这里我们遵循的原则是:

查找:查大用小堆,查小用大堆

排序: 升序用小堆,降序用大堆

堆的操作过程比较复杂,在java中,可以使用优先队列实现堆的操作,因为java中的优先队列是基于堆实现的。

http://www.yayakq.cn/news/759293/

相关文章:

  • 做网站公司深玉山电商网站建设
  • 学校精品课网站怎么做网站建设管理属于职业资格吗
  • 爱建站小程序特点温州网站建设培训班
  • 惠州市住房和城乡规划建设局网站快照推广
  • 化妆品网站做的好的学校网站报价单
  • 保定网站建设方法大二网页设计实训总结
  • 深圳地铁公司网站西安凤城二路网站建设
  • 帝国网站怎么仿站商丘整站优化
  • 网站内容丰富seo舆情优化
  • 网站运维公司有哪些鄂尔多斯网站推广
  • 毕设做网站类型北京网页制作电话
  • 姓名域名网站广告传媒公司哪家好
  • ps图做ppt模板下载网站有哪些内容青岛做网站公司哪家好
  • i57500网站开发计算机网站建设 是什么意思
  • 西安建设规划局网站专业团队搞笑图片
  • 怎样自己开网站赚钱潍坊网站制作在线
  • 西安网站推广优化芝麻开门网站建设
  • 网站运营顾问阿里云营销网站建设
  • 网站设计计划书的要求wordpress 文章过滤
  • 手机网站比例尺寸网站建设设计设计公司哪家好
  • 关于外贸的网站wordpress免费网站模板下载地址
  • wordpress七牛不显示小图网站推广优化淄博公司
  • 百度wap网站建设wordpress 标签小工具栏
  • 网站注册和进入asp谷歌绘制的网站
  • 个人手机网站大全福建建设人才网站
  • 重庆手机网站建设公司wordpress 移动主菜单
  • 网站模板站的模板展示怎么做的找logo的网站
  • 怎么做网站图片网站建设近五年参考文献
  • 仿网站ppt怎么做龙岗网站设计资讯
  • 网站建设swot做saas平台网站