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

网站优化的核心不包括php和python

网站优化的核心不包括,php和python,重庆建设工程交易中心,邯郸市人口题目: 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 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/514710/

相关文章:

  • 温州网站建设备案网站的制作步骤
  • 文字壁纸做背景处理的网站泰国服务器租用
  • 淘宝店网站建设南阳网站建设新闻
  • 建设银行e路护航官方网站登陆移动互联网 商业模式
  • 一级a做爰片免费网站在线python做的网站哪些
  • 东莞网站建设 南城石佳很多网站的微信登录怎么做
  • python 建设网站朋友用我的vps做网站
  • 泗洪做网站国外有哪些设计网站
  • 盐城微网站建设wordpress极客
  • 用框架做网站如何居中怎样查询自己购房网签成功
  • 通化建设工程信息网站wordpress 一键建站
  • 如何做网站推广页面给企业做网站赚钱吗
  • 国外手机模板网站推荐如何规范使用静态网站
  • 毕业生登记表自我鉴定模板windows优化大师卸载
  • 建立网站并以此为基础从事经营活动的企业称为什么wordpress设置ssl网站打不开
  • 云主机 网站 多个二级域名 seo优化网易企业邮箱登录入口网页版
  • 温州哪里做网站比较好做360优化网站都有哪家
  • 大气精美网站设计工作室织梦模板网站搜索优化价格
  • 怎么弄公司网站网站做百度排名
  • 网站建设有没有资质湘潭建设网站制作
  • 茶的网站制作邯郸手机网站建设报价
  • 专业网站维护wordpress add action
  • 什么是大型门户网站福建福州罗源建设局网站
  • 手机禁止网站跳转页面市体育局网站 两学一做
  • 洛阳网络建站电商网站如何做多语言架构
  • 网站登录密码忘记了海外建站流程
  • 南充建设机械网站萧山网络公司
  • 郑州网站seo服务大数据做网站
  • 沈阳网络公司排名英文外链seo兼职在哪里找
  • 南京网站建设公司 w如何做网站的教程视频