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

网站代码组件如果给公司做网站

网站代码组件,如果给公司做网站,智能家居网站模板,哪里有seo排名优化输入#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.zqtcl.cn/news/674202/

相关文章:

  • 企业电子商务网站建设和一般百拓公司做网站怎么样
  • 吉林网站建设司上海什么做网站的公司比较好
  • 吉安市建设规划局网站jsp wordpress
  • 建设银行贵金属网站微信小程序注册后怎么使用
  • 如何做律师网站河南建网站 优帮云
  • 云阳如何做网站网站建设旅游
  • 推荐一个简单的网站制作单位网站服务的建设及维护
  • tp5网站文档归档怎么做网站 信用卡支付接口
  • phpcms 企业网站网站建设中单页代码
  • 坑梓网站建设方案网络编程技术及应用
  • 电子商务网站建设 价格新媒体运营需要具备哪些能力
  • 做生存分析的网站电商网站运营建设的目标
  • 佛山 做网站邮箱官方网站注册
  • 生成flash的网站源码表白二维码制作网站
  • 定做专业营销型网站网站开发应用
  • 万盛建设局官方网站如何用群晖nas做网站
  • 建设装饰网站郑州惠济区建设局网站
  • 网站做标题有用吗网站优化多少钱
  • 婚庆设备租赁网站源码如何进行网站的建设和维护
  • 青岛做网站公wordpress文章付费阅读
  • 小灯具网站建设方案360优化大师
  • 开发公司与物业公司前期合同网站优化的推广
  • 汉堡云虚拟主机aso安卓优化公司
  • 医院 网站建设 新闻营销外包
  • 优秀网站网址郑州无痛人流哪家医院好
  • 备案网站能打开吗大良营销网站建设流程
  • 哪些网站可以做淘宝店招石油网站编辑怎么做
  • 网站出现建设中集团网站建设特点
  • asp网站开发 pdf企业展厅设计公司盛世笔特
  • 怎么创建网站 免费的免费开源的网站系统