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

leetcode——合并K个有序链表(java)

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

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

示例 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

示例 2:

输入:lists = []
输出:[]

示例 3:

输入:lists = [[]]
输出:[]

解题方法:(最小堆)

1.创建最小堆(优先队列),然后开始将列表中的链表全部加入到堆中,(a, b) -> a.val - b.val 是一个自定义比较器,用于比较两个 ListNode 的值,使得堆始终保持最小的节点在顶部。

2.然后创建哨兵节点,进入循环,循环条件:当 pq 不为空时,执行以下操作:

  1. 取出堆顶元素 node(即当前所有节点中最小的)。

  2. 如果 node 有下一个节点 node.next,则将 node.next 加入 pq,确保后续节点也能参与排序。

  3. node 添加到新链表

  • cur.next = node:让当前指针 cur 指向 node,即把 node 加入新链表。

  • cur = cur.next:移动 cur 指针,以便继续添加下一个节点。

/*** 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<>((a, b) -> a.val - b.val);for (ListNode head : lists) {if (head != null) {pq.offer(head);}}ListNode dummy = new ListNode();ListNode cur = dummy;while (!pq.isEmpty()) {ListNode node = pq.poll();if (node.next != null) {pq.offer(node.next);}cur.next = node;cur = cur.next;}return dummy.next;}
}

相关文章:

leetcode——合并K个有序链表(java)

给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中&#xff0c;返回合并后的链表。 示例 1&#xff1a; 输入&#xff1a;lists [[1,4,5],[1,3,4],[2,6]] 输出&#xff1a;[1,1,2,3,4,4,5,6] 解释&#xff1a;链表数组如下&#…...

跨境数据传输问题常见解决方式

在全球化经济的浪潮下&#xff0c;跨境数据传输已然成为企业日常运营的关键环节。随着数字贸易的蓬勃发展和跨国业务的持续扩张&#xff0c;企业在跨境数据处理方面遭遇了诸多棘手难题。那么&#xff0c;面对这些常见问题&#xff0c;企业该如何应对&#xff1f;镭速跨境数据传…...

python-leetcode-删除链表的倒数第 N 个结点

19. 删除链表的倒数第 N 个结点 - 力扣&#xff08;LeetCode&#xff09; # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # self.next next class Solution:def removeNthFromEnd(self…...

EasyExcel写入和读取多个sheet

最近在工作中&#xff0c;作者频频接触到Excel处理&#xff0c;因此也对EasyExcel进行了一定的研究和学习&#xff0c;也曾困扰过如何处理多个sheet&#xff0c;因此此处分享给大家&#xff0c;希望能有所帮助 目录 1.依赖 2. Excel类 3.处理Excel读取和写入多个sheet 4. 执…...

lanqiaoOJ 2097:青蛙过河 ← 二分+前缀和+贪心

【题目来源】 https://www.lanqiao.cn/problems/2097/learning/ https://www.luogu.com.cn/problem/P8775 【题目描述】 小青蛙住在一条河边&#xff0c;它想到河对岸的学校去学习。小青蛙打算经过河里的石头跳到对岸。 备注&#xff1a;此图由百度 AI 创作生成 河里的石头排…...

woocommerce独立站与wordpress独立站的最大区别是什么

WooCommerce独立站与WordPress独立站的最大区别在于它们的功能定位和使用场景。 WordPress是一个开源的内容管理系统(CMS)&#xff0c;最初是作为博客平台发展起来的&#xff0c;但现在已经演变为一个功能丰富的网站构建工具。它主要用于创建动态网站&#xff0c;提供广泛的定…...

MybatisX插件快速创建项目

一、安装插件 二、创建一个数据表测试 三、IDEA连接Mysql数据库 四、选择MybatiX构造器 五、配置参数 六、项目结构...

【Leetcode 每日一题 - 补卡】219. 存在重复元素 II

问题背景 给你一个整数数组 n u m s nums nums 和一个整数 k k k&#xff0c;判断数组中是否存在两个 不同的索引 i i i 和 j j j&#xff0c;满足 n u m s [ i ] n u m s [ j ] nums[i] nums[j] nums[i]nums[j] 且 ∣ i − j ∣ < k |i - j| < k ∣i−j∣<…...

llama3学习

首先是预训练部分&#xff0c;数据注意版权和风险问题。数据去重和数据清理&#xff0c;PII人的身份信息&#xff08;人名、地址等&#xff09;。如果数据有大量PII数据则这个数据丢掉。 网页的数据&#xff0c;提取&#xff0c;代码和数学的提取的特别的方法&#xff0c;OCR…...

H3CNE-31-BFD

Bidirectional Forwarding Dection&#xff0c;双向转发检查 作用&#xff1a;毫秒级故障检查&#xff0c;通常结合三层协议&#xff08;静态路由、vrrp、ospf、BGP等&#xff09;&#xff0c;实现链路故障快速检查。 BFD配置示例 没有中间的SW&#xff0c;接口down&#xff…...

VMware安装win10记录

(1)下载vmware&#xff0c;这个pro现在也免费的&#xff0c;下载地址&#xff1a;https://support.broadcom.com/group/ecx/productfiles?subFamilyVMware%20Workstation%20Pro&displayGroupVMware%20Workstation%20Pro%2017.0%20for%20Windows&release17.6.2&os&…...

python学opencv|读取图像(四十七)使用cv2.bitwise_not()函数实现图像按位取反运算

【0】基础定义 按位与运算&#xff1a;两个等长度二进制数上下对齐&#xff0c;全1取1&#xff0c;其余取0。按位或运算&#xff1a;两个等长度二进制数上下对齐&#xff0c;有1取1&#xff0c;其余取0。 按位取反运算&#xff1a;一个二进制数&#xff0c;0变1,1变0。 【1】…...

Ability Kit(程序框架服务)

Ability Kit&#xff08;程序框架服务&#xff09;提供了应用程序开发和运行的应用模型&#xff0c;是系统为开发者提供的应用程序所需能力的抽象提炼&#xff0c;它提供了应用程序必备的组件和运行机制。有了应用模型&#xff0c;开发者可以基于一套统一的模型进行应用开发&am…...

拦截器快速入门及详解

拦截器Interceptor 快速入门 什么是拦截器&#xff1f; 是一种动态拦截方法调用的机制&#xff0c;类似于过滤器。 拦截器是Spring框架中提供的&#xff0c;用来动态拦截控制器方法的执行。 拦截器的作用&#xff1a;拦截请求&#xff0c;在指定方法调用前后&#xff0c;根…...

IT服务管理平台(ITSM):构建高效运维体系的基石

IT服务管理平台(ITSM):构建高效运维体系的基石 在数字化转型浪潮的推动下,企业对IT服务的依赖日益加深,如何高效管理和优化IT服务成为企业面临的重要课题。IT服务管理平台(ITSM)应运而生,以其系统化的管理方法和工具,助力企业实现IT服务的规范化、高效化和智能化。本…...

python爬虫入门(一) - requests库与re库,一个简单的爬虫程序

目录 web请求与requests库 1. web请求 1.1 客户端渲染与服务端渲染 1.2 抓包 1.3 HTTP状态代码 2. requests库 2.1 requests模块的下载 2.2 发送请求头与请求参数 2.3 GET请求与POST请求 GET请求的例子&#xff1a; POST请求的例子&#xff1a; 3. 案例&#xff1a;…...

智慧园区管理平台实现智能整合提升企业运营模式与管理效率

内容概要 在当今数字化的背景下&#xff0c;智慧园区管理平台正逐渐成为企业提升运营效率和管理模式的重要工具。这个平台汇聚了多种先进技术&#xff0c;旨在通过智能整合各类资源与信息&#xff0c;帮助企业实现全面的管理创新。 智慧园区管理平台不仅仅是一个数据处理工具…...

尚硅谷spring框架视频教程——学习笔记一(IOC、AOP)

文章目录 前言一、控制反转&#xff08;IOC&#xff09;1. 底层原理2. 两种实现方式&#xff08;接口&#xff09;3. bean管理&#xff08;基于xml方式&#xff09;4. bean管理&#xff08;基于注解方式&#xff09; 二、面向切面编程&#xff08;AOP&#xff09;1. 底层逻辑2.…...

傅里叶分析之掐死教程

https://zhuanlan.zhihu.com/p/19763358 要让读者在不看任何数学公式的情况下理解傅里叶分析。 傅里叶分析 不仅仅是一个数学工具&#xff0c;更是一种可以彻底颠覆一个人以前世界观的思维模式。但不幸的是&#xff0c;傅里叶分析的公式看起来太复杂了&#xff0c;所以很多…...

实战:如何快速让新网站被百度收录?

本文来自&#xff1a;百万收录网 原文链接&#xff1a;https://www.baiwanshoulu.com/22.html 要让新网站快速被百度收录&#xff0c;可以采取以下实战策略&#xff1a; 一、网站基础优化 网站结构清晰&#xff1a;确保网站的结构简洁清晰&#xff0c;符合百度的抓取规则。主…...

PVE 虚拟机安装 Debian 无图形化界面服务器

Debian 安装 Debian 镜像下载 找一个Debian镜像服务器&#xff0c;根据需要的版本和自己硬件选择。 iso-cd/&#xff1a;较小&#xff0c;仅包含安装所需的基础组件&#xff0c;可能需要网络访问来完成安装。有镜像 debian-12.9.0-amd64-netinst.isoiso-dvd/&#xff1a;较…...

Java定时任务实现方案(五)——时间轮

时间轮 这篇笔记&#xff0c;我们要来介绍实现Java定时任务的第五个方案&#xff0c;使用时间轮&#xff0c;以及该方案的优点和缺点。 ​ 时间轮是一种高效的定时任务调度算法&#xff0c;特别适用于大量定时任务的场景。时间轮的定时任务实现&#xff0c;可以使用DelayQueue…...

乐理笔记——DAY02

三分钟音乐社视频地址&#xff1a; 调号总结篇https://www.bilibili.com/video/BV14p4y1e7TV?spm_id_from333.788.videopod.episodes&vd_source0a2d366696f87e241adc64419bf12cab&p25https://www.bilibili.com/video/BV14p4y1e7TV?spm_id_from333.788.videopod.epis…...

企业知识管理在推动组织变革与适应性发展中的关键性作用分析

内容概要 企业知识管理是信息时代背景下的重要管理理念&#xff0c;旨在通过有效地获取、分享和再利用知识&#xff0c;提升组织在变革中的灵活性和创新能力。知识作为企业的重要资产&#xff0c;其有效管理不仅影响到日常运营&#xff0c;更是推动组织变革与适应性发展的核心…...

动态规划DP 最长上升子序列模型 登山(题目分析+C++完整代码)

概览检索 动态规划DP 最长上升子序列模型 登山 原题链接 AcWing 1014. 登山 题目描述 五一到了&#xff0c;ACM队组织大家去登山观光&#xff0c;队员们发现山上一共有N个景点&#xff0c;并且决定按照顺序来浏览这些景点&#xff0c;即每次所浏览景点的编号都要大于前一个…...

芯片AI深度实战:进阶篇之vim内verilog实时基于AST的自定义检视

本文基于Editor Integration | ast-grep&#xff0c;以及coc.nvim&#xff0c;并基于以下verilog parser(my-language.so&#xff0c;文末下载链接), 可以在vim中实时显示自定义的verilog 匹配。效果图如下&#xff1a; 需要的配置如下&#xff1a; 系列文章&#xff1a; 芯片…...

AI 计算的未来:去中心化浪潮与全球竞争格局重塑

引言 人工智能(AI)正以前所未有的速度发展,尤其是大模型训练和推理效率的提升,使得 AI 计算成本迅速下降,呈现出向去中心化演进的趋势。 最新的 DeepSeek r1 模型,以仅 600 万美元 的训练成本,达到了 OpenAI o1 级别的性能,表明 AI 技术正迈向更具普惠性的阶段。这一趋…...

JxBrowser 8.2.2 版本发布啦!

JxBrowser 8.2.2 版本发布啦&#xff01; • 已更新 #Chromium 至更新版本 • 实施了多项质量改进 &#x1f517; 点击此处了解更多详情。 &#x1f193; 获取 30 天免费试用。...

BWM 世界模型

DGX AGX Ominiverse With Cosmos 功能 1w 张 H100 训练了 3个月 使用 Ray 串流 数据 数据准备 处理 pipeline 数组组成 真实世界的物理数据 训练 1、使用 L1 损失&#xff0c;最小化 输入和重构视频之间的像素级差异 以及基于 VGG19 的一个特征感知损失 2、使用光流的损…...

@Inject @Qualifier @Named

Inject Qualifier Named 在依赖注入&#xff08;DI&#xff09;中&#xff0c;Inject、Qualifier 和 Named 是用于管理对象创建和绑定的关键注解。以下是它们的用途、依赖配置和代码示例的详细说明&#xff1a; 1. 注解的作用 Inject&#xff1a;标记需要注入的构造函数、字段…...