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

长春网站建设net企查查企业信息查询官网登录入口

长春网站建设net,企查查企业信息查询官网登录入口,wordpress添加视频插件吗,如何做好一个购物网站解题思路:两种解法,一种优先级队列,一种分治优先级队列解法:以节点中存储的值进行排序依次遍历所有的链表,把链表中的节点加入到优先级队列中依次从优先级队列的弹出并删除最小的元素加入到新的链表中,直到…

解题思路:两种解法,一种优先级队列,一种分治

  1. 优先级队列解法:以节点中存储的值进行排序

  1. 依次遍历所有的链表,把链表中的节点加入到优先级队列中

  1. 依次从优先级队列的弹出并删除最小的元素加入到新的链表中,直到队列为空,

  1. 返回新的链表

AC代码:

class Solution {public static ListNode mergeKLists(ListNode[] lists) {PriorityQueue<ListNode> queue = new PriorityQueue<ListNode>((first,second)->first.val-second.val);for (ListNode list : lists) {while (list!=null){queue.add(list);list=list.next;}}ListNode result = new ListNode();ListNode tem = result;while (queue.size()!=0){ListNode node =queue.remove();tem.next =node;tem=tem.next;}tem.next=null;//防止出现循环链,a->b->areturn result.next;}
}
  1. 分治:类似与归并排序的思想

  1. 如果链表的长度大于2:继续对链表进行拆分成两部分,继续使用分治的思想

  1. 将链表数组数组分成两半,list[0,left]和list[left,end],分别对这对两部分进行分治排序合并,这两部分排序后的结果first,second

  1. 然后对first和second这两个链表进行双链表合并排序,合并思路:双指针:因为两个链表有序,所以只需要依次比较两个元素的大小,然后添加到新的链表中即可

  1. first指针指向第一个链表,second指针指向第二个链表,result保存合并后的链表的头节点的前驱,tail初值指向result

  1. 如果fist和second当前指向的节点都不为null,循环遍历:

  1. 如果first.val<second.value,tail.next=first,first=first.next,tail=tail.next

  1. 否则,tail.next=second,second=second.next,tail=tail.next

  1. 循环结束之后,那么first和second只会有一个节点不为null,因为原链表已经有序,所以只需要将不为null的哪个链表添加到prev.next中即可

  1. 最终result.next即为合并后链表的第一个节点

  1. 如果链表的长度等于1:不需要分治合并,直接返回该链表即可

AC代码:

class Solution {public static ListNode mergeKLists(ListNode[] lists) {if (lists==null||lists.length==0){return null;}return merge(lists,0,lists.length-1);}//对list[left,right]范围的链表进行合并,返回合并后新的链表public static ListNode merge(ListNode[] lists,int left,int right){if (left==right){return lists[left];}int mid = (left+right)/2;ListNode first = merge(lists,left,mid);//对左半部的链表分进行分治合并,返回合并后的结果ListNode second = merge(lists,mid+1,right);//对右半部分的链表进行分治合并,返回合并后的结果ListNode result = sortMerge(first,second);//对first和second进行双链表合并return result;}public static ListNode sortMerge(ListNode first,ListNode second){ListNode result = new ListNode();ListNode tail = result;while (first!=null&&second!=null){if (first.val<second.val){tail.next= first;first=first.next;}else {tail.next=second;second=second.next;}tail = tail.next;}tail.next=(first==null)?second:first;return result.next;}
}
http://www.yayakq.cn/news/995335/

相关文章:

  • 做网站需要的条件动易学校网站管理系统
  • 安徽工程建设官方网站企业营销策划及推广
  • 网络商城网站怎样做关键词优化网页设计与网站建设考试热点
  • 专业的网站建设哪家快网站开发神器
  • 桐庐建设局网站外包公司和公司直招哪个好
  • 亚马逊网站建设的意义wordpress文字轮播
  • 区块链资讯网站建设深圳网站建设公司推荐
  • 制作网站哪里做网站怎么接广告
  • 网站制作寻找客户太原做网站设计
  • 北京通州网站制作公司大型网站平台建设
  • 班级管理网站开发网站开发实战视频
  • 网站后台模板制作流程政务网站建设规划
  • 上海本地企业宁波正规seo推广公司
  • 网站备案许可证陕西多地最新通知
  • 宁波网站建设的步骤过程通用企业网站织梦模板(红绿蓝三色)
  • 常德网站设计字答科技白云手机网站建设
  • 上海市建设安全协会网站孟 侠广州建设h5网站
  • 网站信息系统wordpress版权购买
  • 智能家居网站开发腾讯云服务器学生
  • 母婴产品网站模板网站备案一般多久
  • 贵港网站建设培训注册公司验资需要多少钱
  • 自学网站开发软件开发人工投票平台app
  • 赣州章贡区二手房出售信息绍兴百度seo公司
  • 外企网站建设服务公司怎么查到代码是哪个网站做的
  • 网站没有备案可以做seo优化吗初学者做网站的软件
  • 台州网站制作案例网站建设周期
  • 公司的网站设计制作企业网站源代码下载
  • 一级a做爰片_相关网站网站管理是做什么的
  • 单位网站设计建议书创业商机网餐饮
  • 集团网站信息建设情况企业网站的建设目的有什么