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

网站仿站是啥网站建设亇金手指排名十五

网站仿站是啥,网站建设亇金手指排名十五,wp网站源码,茶叶网站开发目的和意义输入#xff1a;k个有序链表lists 输出#xff1a;一个有序链表 规则#xff1a;将这个k个有序链表合并成一个有序链表 分析#xff1a;在链表中合并两个有序链表为一个有序链表是基本功。最开始的直觉是我们可以将lists[0]和lists[1]合并得到 result#xff0c;result再和…输入k个有序链表lists 输出一个有序链表 规则将这个k个有序链表合并成一个有序链表 分析在链表中合并两个有序链表为一个有序链表是基本功。最开始的直觉是我们可以将lists[0]和lists[1]合并得到 resultresult再和lists[2]合并一直 到最后合并完成。这个每个节点 都要和其他链表中的一个节点比较所以时间复杂度是O(k*n)。n是所有节点的个数总和。 public ListNode mergeKLists(ListNode[] lists) {ListNode mergeHead new ListNode(0);ListNode node mergeHead;while(true){ListNode minHead null;int idx -1;for (int i0;ilists.length;i) {if (lists[i] ! null) {if(minHead null || minHead.val lists[i].val){minHead lists[i];idx i;}}}if(minHeadnull){break;}lists[idx] lists[idx].next;node.next new ListNode(minHead.val);node node.next;}return mergeHead.next;}分析2可以使用堆排序解决上面的比较问题。在堆中维护的是每个链表 表头元素。移除最小的节点插入链表中的下一个节点。时间复杂度O(nlogk)。 public ListNode mergeKLists(ListNode[] lists) {ListNode dummy new ListNode(-1);ListNode current dummy;PriorityQueueListNode heap new PriorityQueueListNode(new ComparatorListNode(){public int compare(ListNode i1,ListNode i2){return i1.val-i2.val;}});//把头节点放进去for(ListNode node: lists){if(node!null){heap.offer(node);} }while(!heap.isEmpty()){ListNode node heap.poll();if(node.next ! null){heap.offer(node.next);} current.next node;current current.next;}return dummy.next;}分析3使用分治法。先解决lists[0]和lists[1]lists[2]和lists[3]…合并完成只剩下k2\dfrac{k}{2}2k​。下一轮解决lists[0]和lists[2]lists[4]和lists[6]…合并完成剩下k4\dfrac{k}{4}4k​…一直到最后只剩下lists[0]就是结果。 public ListNode mergeKLists(ListNode[] lists) {for(int interval 1 ;intervallists.length; intervalinterval*2){for(int j 0;jintervallists.length;j j 2*interval){lists[j] mergeTwoLists(lists[j],lists[jinterval]);}}return lists.length0?lists[0]:null;}public ListNode mergeTwoLists(ListNode l1, ListNode l2) {ListNode dummy new ListNode(-1);ListNode currentNode dummy;while(l1!null l2!null){if(l1.val l2.val){currentNode.next l2;l2 l2.next;}else{currentNode.next l1;l1 l1.next;}currentNode currentNode.next;}while(l1!null){currentNode.next l1;l1 l1.next;currentNode currentNode.next;}while(l2!null){currentNode.next l2;l2 l2.next;currentNode currentNode.next;}return dummy.next;}复杂度分析。最外层循环有log2klog_2^klog2k​次。mergeTwoLists函数的时间复杂度是n两个列表节点个数的和。最后合起来是O(nlogk)。这里的n是所有链表节点个数和。
http://www.huolong8.cn/news/356024/

相关文章:

  • 凡客诚品售后无锡优化网站
  • 江门seo网站推广动态广告图片在线制作
  • 重庆梁平网站建设哪家好seo搜索优化待遇
  • 网站平台开发与应用面试提升关键词排名seo软件
  • 已有网站怎么修改网站建设酷万网络
  • 公司制作网站多少钱江苏交通厅门户网站建设工程
  • 网站建设管理工作简述民法典建设工程施工合同
  • 个人类网站有哪些全球速卖通
  • flashfxp上传多个网站建设银行南通城区网站
  • 广州网站建设比较好的公司牵牛建站
  • 如何自己建设电商网站莱芜都市网交友征婚
  • html5教育网站东营网站优化
  • 三亚哪些行业适合做seo
  • 免费简单门户网站开发外贸公司用的采购储运财务软件
  • 兼职做猎头的网站启东做网站
  • 新乡百度网站推广工具温州15000 做网站的工作
  • 做公司网站有什么需要注意的wordpress数据库分表
  • 商丘专业做网站公司asp.net网站开发实例教程 下载
  • 佛山网站设计建设id注册网站
  • 做本地旅游网站网站app下载平台怎么做的
  • 朝阳建设工程外贸网站建设和seo
  • 网站建设seo方案做网站好还是做程序员好
  • 可以做外贸私单的网站免费wordpress云服务器
  • 保定模板建站哪家好wordpress图片上传后无法显示
  • 网站开发创新点教做月嫂的网站有吗
  • 环保行业网站怎么做织梦网站建设培训班
  • 电脑装机网站网站怎么用PS做
  • 深圳网站建设的公司wordpress如何加链接
  • 调查网站怎么做网站域名怎么转
  • 做网站需要哪些技术知乎怎样申请自己企业的网站