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

北京专业企业网站建设免费查询企业信息的软件

北京专业企业网站建设,免费查询企业信息的软件,泉州官方网站,做直播小视频在线观看网站题目: 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 1: 输入:lists [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释&#xff1a…

题目:

给你一个链表数组,每个链表都已经按升序排列。

请你将所有链表合并到一个升序链表中,返回合并后的链表。

示例 1:

输入:lists = [[1,4,5],[1,3,4],[2,6]]
输出:[1,1,2,3,4,4,5,6]
解释:链表数组如下:
[1->4->5,1->3->4,2->6
]
将它们合并到一个有序链表中得到。
1->1->2->3->4->4->5->6

 这题虽然是困难题,但是思路很清晰,很好理解,主要借助最小堆,因为最小堆有着将最小的元素置为堆顶的性质,所以每次取最小值时将最小堆的头推出即可。

并且使用dummy作为结果的头结点返回。代码及思路如下:

  1. 创建最小堆
    • 使用 PriorityQueue 作为最小堆,并定义比较器来比较节点的值。
  2. 初始化最小堆
    • 遍历所有链表,将每个链表的头节点(如果不为空)加入最小堆。
  3. 创建结果链表
    • 使用一个哑节点(dummy node)来简化头节点的处理。
  4. 合并过程
    • 当最小堆不为空时,重复以下步骤:
      a. 从堆中取出值最小的节点。
      b. 将这个节点添加到结果链表的末尾。
      c. 如果这个节点还有下一个节点,将下一个节点加入堆中。
  5. 返回结果
    • 返回哑节点的下一个节点,即合并后链表的真正头节点。

 复杂度分析

  • 时间复杂度:O(N log K),其中 N 是所有节点的总数,K 是链表的数量。
    每个节点都会被加入和取出堆一次,每次堆操作的时间复杂度是 O(log K)。
  • 空间复杂度:O(K),优先队列中最多同时存在 K 个节点。
import java.util.Comparator;
import java.util.PriorityQueue;public class no_23 {public static void main(String[] args) {ListNode l1 = new ListNode(1, new ListNode(4, new ListNode(5)));ListNode l2 = new ListNode(1, new ListNode(3, new ListNode(4)));ListNode l3 = new ListNode(2, new ListNode(6));ListNode[] lists = {l1, l2, l3};// 合并链表ListNode result = mergeKLists(lists);// 打印结果while (result != null) {System.out.print(result.val + " ");result = result.next;}}public static ListNode mergeKLists(ListNode[] lists) {//  最小堆PriorityQueue<ListNode> minHeap = new PriorityQueue<>(Comparator.comparingInt(a -> a.val));//  将所有的链表头节点加入最小堆for (ListNode head : lists) {if (head != null) {minHeap.offer(head);}}ListNode dummy = new ListNode(0);ListNode tail = dummy;while (!minHeap.isEmpty()) {ListNode node = minHeap.poll();tail.next = node;tail = tail.next;if (node.next != null) {minHeap.offer(node.next);}}return dummy.next;}
}
class ListNode {int val;ListNode next;ListNode(int x) {val = x;next = null;}ListNode(int val, ListNode next) {this.val = val;this.next = next;}
}

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

相关文章:

  • 广州网站制作(信科网络)提升学历机构
  • 网站开发 外文文献安徽做网站的公司有哪些
  • 营销型网站(易网拓)做文明人网站专题
  • 企业网站的好处北京设计公司招聘信息
  • 黄浦建设机械网站网站域名申请
  • 底湘西网站制作做不规则几何图形的网站
  • 网站建设招标文件技术部分如何在个人电脑用源码做网站
  • aws网站建设网站建设背景怎么设置成
  • 网站免费的阿里云服务起做网站
  • 下载类网站如何做国内常用erp系统有哪几种
  • 成都网站建设小程序庄浪县住房和城乡建设局网站
  • 网站开发项目介绍深圳网站制作专业公司
  • 彩票类网站开发厦门网站建设培训班
  • 招聘类网站怎么做Wordpress支付时效
  • 网站做担保交易平台wordpress 虾米页面
  • 国家住房部和城乡建设部 网站首页西安互联网推广公司
  • 国外有哪做交互设计网站哪个网站的域名到期直接注册
  • 龙岩做网站公司phpstudy怎么做网站
  • 360网站卖东西怎么做的做网站的可以黑客户的网站吗
  • 注销建设工程规划许可证在哪个网站如何在自己公司的网站上做宣传
  • 开发一套小程序需要多少钱360网站seo手机优化软件
  • php整站开发 企业网站教程中国空间站组合体
  • 锦州做网站哪家好个人做网站多少钱
  • 爱站工具官网关于网站建设的调查报告
  • iis 添加网站深圳百度推广关键词推广
  • 运动网站设计如何提升网站百度权重
  • 网站推广与宣传怎么做网站建设前端后端
  • 学做面包网站广西建设官方网站
  • 德阳网站建设平台苏州基础网站建设
  • 做搜狗网站点击咨询公司税率是多少