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

扬州网站建设哪家好江苏网站建站系统哪家好

扬州网站建设哪家好,江苏网站建站系统哪家好,网站建设自学多长时间,设计房子的软件免费分治算法题目 分治算法是什么题目:合并K个升序链表总结 分治算法是什么 把问题分解后进行求解,相比于不分解直接求解,时间复杂度更低。符合这个特征的算法,我们才称之为「分治算法」。 题目:合并K个升序链表 题目 分…

分治算法+题目

  • 分治算法是什么
  • 题目:合并K个升序链表
  • 总结

分治算法是什么

问题分解后进行求解,相比于不分解直接求解,时间复杂度更低。符合这个特征的算法,我们才称之为「分治算法」。

题目:合并K个升序链表

题目
在这里插入图片描述
分治算法:

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {//分治的思想 二分分治 时间复杂度是O(N*logN)public ListNode mergeKLists(ListNode[] lists) {int sz=lists.length;return merge(lists,0,sz-1);}//定义:合并lists[startIndex...endIndex]上的链表ListNode merge(ListNode[] lists,int startIndex,int endIndex){//没有链表if(startIndex>endIndex){return null;}//一条链表if(endIndex==startIndex){return lists[startIndex];}//分成两段 [startIndex,mid][mid+1,endIndex]int mid=(startIndex+endIndex)/2;//合并左边的ListNode left= merge(lists,startIndex,mid);//合并右边的ListNode right= merge(lists,mid+1,endIndex);//合并左右边的return mergeTwoLists(left,right);}ListNode mergeTwoLists(ListNode list1,ListNode list2){ListNode dummy=new ListNode(-1);ListNode cur=dummy;ListNode p1=list1;ListNode p2=list2;while(p1!=null && p2!=null){if(p1.val<p2.val){cur.next=p1;p1=p1.next;}else{cur.next=p2;p2=p2.next;}cur=cur.next;}while(p1!=null ){cur.next=p1;p1=p1.next;cur=cur.next;}while(p2!=null ){cur.next=p2;p2=p2.next;cur=cur.next;}cur.next=null;return dummy.next;}
}

优先级队列:

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {//把所有的节点放入 优先级队列中 然后一个个取出public ListNode mergeKLists(ListNode[] lists) {// 优先级队列,最小堆PriorityQueue<ListNode> pq = new PriorityQueue<>(new Comparator<ListNode>() {@Overridepublic int compare(ListNode o1, ListNode o2) {// TODO Auto-generated method stubreturn o1.val-o2.val;}});//取出所有链表 将每个节点入队列for(ListNode list:lists) {ListNode cur=list;while(cur!=null) {pq.add(cur);cur=cur.next;}}//取出所有节点ListNode dummy=new ListNode(-1),cur=dummy;while(!pq.isEmpty()) {cur.next=pq.poll();cur=cur.next;}cur.next=null;return dummy.next;}
}

总结

在这里插入图片描述

把递归算法抽象成递归树,如果递归树节点的时间复杂度和树的深度相关,那么使用分治思想对问题进行二分,就可以使递归树尽可能平衡,进而优化总的时间复杂度


文章转载自:

http://8qHR3FAf.rwpfb.cn
http://dORT6ikj.rwpfb.cn
http://k8WtElI1.rwpfb.cn
http://OZiCI1Ca.rwpfb.cn
http://E8ZMevT2.rwpfb.cn
http://bAHRuCbt.rwpfb.cn
http://Nqr6WzGd.rwpfb.cn
http://3S7dgh2B.rwpfb.cn
http://D7rkGstm.rwpfb.cn
http://wVn3u3zp.rwpfb.cn
http://9hojajLK.rwpfb.cn
http://ecvxJwnJ.rwpfb.cn
http://S2EiEmXM.rwpfb.cn
http://ukMGwiJN.rwpfb.cn
http://QOjcsWt1.rwpfb.cn
http://qvpt18ju.rwpfb.cn
http://m0IFX1SY.rwpfb.cn
http://pQsCFHnS.rwpfb.cn
http://JPEkFuyz.rwpfb.cn
http://F834OXSf.rwpfb.cn
http://n4DoYLl4.rwpfb.cn
http://8dutRw1w.rwpfb.cn
http://jO3BSM14.rwpfb.cn
http://eGjnq7X0.rwpfb.cn
http://KgO9NUBw.rwpfb.cn
http://RRuNqEVl.rwpfb.cn
http://YPLSPS2J.rwpfb.cn
http://TNhhlWfF.rwpfb.cn
http://vV4FUpN9.rwpfb.cn
http://hbrRfiZC.rwpfb.cn
http://www.dtcms.com/wzjs/713162.html

相关文章:

  • 建设网站企业桂林北站到阳朔
  • 晚上必看的正能量网站排名优化公司
  • 搭建网站的主要风险google 网站优化工具
  • 重庆建网站一般多少钱网站建设术语名词
  • 线上推广的意义在线看seo网站
  • 网站建设从零开始杭州制造业企业做网站
  • 自助建站帮助网长沙专业网站设计公司
  • 建网站方案电脑软件开发工具
  • 北京做网站哪家好做网站要用什么服务器吗
  • 重庆企业免费建站房地产市场分析及前景
  • 网站建设论文总结做网站业务的怎么找资源
  • photoshop网页版在线使用惠州seo优化服务
  • 好玩的网页游戏排行榜电脑浙江网站建设方案优化
  • 网站建设宣传广告语郑州网站建设工作室
  • 知名网站规划软件开发 报价单
  • 12306铁路网站开发语言海口 网站制作公司
  • 青岛做物流网站pantone色卡官网入口
  • php房产中介网站源码做网站泰安
  • 江苏工程建设信息官方网站高端集团官方网站建设公司
  • 广东购物网站建设做一个网站要多少钱
  • 视频logo免费生成网站如何进入网站后台管理系统
  • 做号网站重庆长寿网站设计公司
  • 网页设计旅游网站老鹰画室网站哪家做的
  • 南京中企动力有限公司谷歌seo站内优化
  • 岳阳建站公司网站返回首页按钮
  • 怎么建立自己公司的网站电脑网站开发学习
  • 贵州企业网站建设策划程序员开源网站
  • 全国建设部网站官网wordpress批量删除文章的插件
  • 男女性男女直接做的视频网站百度上广告怎么搞上去的
  • 宠物出售的网站怎么做宁波网站推广外包服务