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

Leetcode每日一题:23. 合并 K 个升序链表(2023.8.12 C++)

目录

23. 合并 K 个升序链表

题目描述:

实现代码与解析:

优先级队列:

原理思路:


23. 合并 K 个升序链表

题目描述:

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

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

示例 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 = [[]]
输出:[]

提示:

  • k == lists.length
  • 0 <= k <= 10^4
  • 0 <= lists[i].length <= 500
  • -10^4 <= lists[i][j] <= 10^4
  • lists[i] 按 升序 排列
  • lists[i].length 的总和不超过 10^4

实现代码与解析:

优先级队列:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:struct Node{int val;ListNode* ptr;bool operator < (const Node &node) const{return val > node.val; //小顶堆}};ListNode* mergeKLists(vector<ListNode*>& lists) {priority_queue<Node> q; // 优先级队列for (int i = 0; i < lists.size(); i++){if (lists[i]) q.push({lists[i]->val, lists[i]}); // 入队}ListNode* head = new ListNode(); // 头节点ListNode* cur = head;while(q.size()){auto t = q.top(); q.pop(); // 出队cur->next = t.ptr;cur = cur->next;auto nt = t.ptr->next; if (nt) q.push({nt->val, nt}); // 已经出队的节点将其下一个节点入队}return head->next;}
};

原理思路:

        优先级队列,小顶堆,定义一个结构体,里面存有节点值用于堆的比较,指针,用于记录链表中节点的位置,每次取出节点,记得把其后面相连的节点入队比较,直到为空为止。很简单,不再详细解释了。

相关文章:

Leetcode每日一题:23. 合并 K 个升序链表(2023.8.12 C++)

目录 23. 合并 K 个升序链表 题目描述&#xff1a; 实现代码与解析&#xff1a; 优先级队列&#xff1a; 原理思路&#xff1a; 23. 合并 K 个升序链表 题目描述&#xff1a; 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表…...

越南的区块链和NFT市场调研

越南的区块链和NFT市场调研 基本介绍 https://zh.wikipedia.org/wiki/%E8%B6%8A%E5%8D%97 语言文字&#xff1a; 越南语&#xff0c; 文字以国语字&#xff08;越南罗马字&#xff09;为主&#xff0c;汉喃文&#xff08;汉字&#xff09; 货币&#xff1a;越南盾 人口(2022…...

MySQL常用语句

当涉及到与关系型数据库进行交互时&#xff0c;以下是一些常用的 SQL 语句&#xff0c;可以帮助你进行数据查询、插入、更新和删除等操作&#xff1a; 查询数据&#xff1a; 查询所有数据&#xff1a;SELECT * FROM table_name; 查询特定列数据&#xff1a;SELECT column1, col…...

Mongodb:业务应用(1)

环境搭建参考&#xff1a;mongodb&#xff1a;环境搭建_Success___的博客-CSDN博客 需求&#xff1a; 在文章搜索服务中实现保存搜索记录到mongdb 并在搜索时查询出mongdb保存的数据 1、安装mongodb依赖 <dependency><groupId>org.springframework.data</groupI…...

【vue】vue中按钮权限控制:

文章目录 一、获取权限码二、三种按钮级别的权限控制方式【1】函数方式【2】组件方式【3】指令方式 一、获取权限码 要做权限控制&#xff0c;肯定需要一个code&#xff0c;无论是权限码还是角色码都可以&#xff0c;一般后端会一次性返回&#xff0c;然后全局存储起来就可以了…...

【博客695】k8s subPathExpr作用

k8s subPathExpr作用 场景&#xff1a; 对于一个deployment或者job拉起的服务&#xff0c;所有pod都是一样的配置&#xff0c;如果都挂载了宿主机的同一个目录&#xff0c;那么就会互相干扰&#xff0c;我们希望挂载相同目录&#xff0c;且在这个目录下&#xff0c;每个pod建立…...

微信小程序中键盘弹起输入框自动跳到键盘上方处理

效果展示 键盘未弹起时 键盘弹起后&#xff1a; 实现方式 话就不多说了 我直接贴代码了 原理就是用你点击的输入框的底部 距离顶部的位置 减去屏幕高度除以2&#xff0c;然后设成负值&#xff0c;再将这个值给到最外层相对定位的盒子的top属性&#xff0c;这样就不会出现顶…...

excel将主信息和明细信息整理为多对多(每隔几行空白如何填充)

excel导出的数据是主信息和明细信息形式。 方法如下:1、首先&#xff0c;从第一个单元格开始选中要填充的数据区域。2、按CtrlG或者F5调出定位对话框&#xff0c;点击左下角的【定位条件】。3、在【定位条件】中选择【空值】&#xff0c;然后点击【确定】按钮。4、按照上述操作…...

卷积神经网络实现彩色图像分类 - P2

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f366; 参考文章&#xff1a;365天深度学习训练营-第P2周&#xff1a;彩色识别&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项目定制&#x1f680; 文章来源&#xff1a;K同学的学习圈子…...

【博客694】k8s kubelet 状态更新机制

k8s kubelet 状态更新机制 场景&#xff1a; 当 Kubernetes 中 Node 节点出现状态异常的情况下&#xff0c;节点上的 Pod 会被重新调度到其他节点上去&#xff0c;但是有的时候我们会发现节点 Down 掉以后&#xff0c;Pod 并不会立即触发重新调度&#xff0c;这实际上就是和 K…...

【博客692】grafana如何解决step动态变化时可能出现range duration小于step

grafana如何解决step动态变化时可能出现range duration小于step 1、grafana中的step和resolution grafana中的 “step” grafana本身是没有提供step参数的&#xff0c;因为仪表盘根据查询数据区间以及仪表盘线条宽度等&#xff0c;对于不同查询&#xff0c;相同的step并不能…...

eNSP:ibgp的破水平切割练习

实验要求&#xff1a; 拓扑展示&#xff1a; 命令操作&#xff1a; R1&#xff1a; <Huawei>sys [Huawei]sys r1 [r1]int g 0/0/1 [r1-GigabitEthernet0/0/1]ip add 12.1.1.1 24 [r1-GigabitEthernet0/0/1]int lo0 [r1-LoopBack0]ip add 1.1.1.1 24 [r1-LoopBack0]osp…...

maven是什么?安装+配置

目录 1.什么是maven&#xff1f; 1.2.maven的核心功能是什么&#xff1f; 2.Maven安装配置 2.1Maven的安装 2.2Maven环境配置 1.配置 MAVEN_HOME &#xff0c;变量值就是你的 maven 安装的路径&#xff08;bin 目录之前一级目录&#xff09; 2.将MAVEN_HOME 添加到Path系…...

基于长短期神经网络LSTM的多分类代码

目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 基于长短期神经网络LSTM的股票预测 MATALB编程实现,附有代码:基于长短期神经网络LSTM的多分类代码,基于LSTM的多分类预测-深度学习文档类资源-CSDN文库 https://download.csdn.net/download/abc991835105/88184779 效果图 结果…...

利用爬虫爬取图片并保存

1 问题 在工作中&#xff0c;有时会遇到需要相当多的图片资源&#xff0c;可是如何才能在短时间内获得大量的图片资源呢&#xff1f; 2 方法 我们知道&#xff0c;网页中每一张图片都是一个连接&#xff0c;所以我们提出利用爬虫爬取网页图片并下载保存下来。 首先通过网络搜索…...

设计模式之Bridge模式的C++实现

目录 1、Bridge模式的提出 2、Bridge模式的定义 3、Bridge模式总结 4、需求描述 5、多继承方式实现 6、使用Bridge设计模式实现 1、Bridge模式的提出 在软件功能模块设计中&#xff0c;如果类的实现功能划分不清晰&#xff0c;使得继承得到的子类往往是随着需求的变化&am…...

springboot异步任务

在Service类声明一个注解Async作为异步方法的标识 package com.qf.sping09test.service;import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service;Service public class AsyncService {//告诉spring这是一个异步的方法Asyncp…...

Flutter父宽度自适应子控件的宽度

需求&#xff1a; 控件随着金币进行自适应宽度 image.png 步骤&#xff1a; 1、Container不设置宽度&#xff0c;需要设置约束padding&#xff1b; 2、文本使用Flexible形式&#xff1b; Container(height: 24.dp,padding: EdgeInsetsDirectional.only(start: 8.dp, end: 5.d…...

什么是 API 安全?学习如何防止攻击和保护数据

随着 API 技术的普及&#xff0c;API 安全成为了一个越来越重要的问题。本文将介绍什么是 API 安全&#xff0c;以及目前 API 面临的安全问题和相应的解决方案。 什么是 API 安全 API 安全是指保护 API 免受恶意攻击和滥用的安全措施。API 安全通常包括以下几个方面&#xff1…...

简述 TCP 和 UDP 的区别以及优缺点和使用场景?

一、TCP与UDP区别总结&#xff1a; 1、TCP面向连接&#xff08;如打电话要先拨号建立连接&#xff09;;UDP是无连接的&#xff0c;即发送数据之前不需要建立连接 2、TCP提供可靠的服务。也就是说&#xff0c;通过TCP连接传送的数据&#xff0c;无差错&#xff0c;不丢失&…...

2026指纹浏览器与跨境电商多账号运营:场景适配与风控规避实操指南

2026 年&#xff0c;跨境电商行业的竞争已进入精细化、规模化运营阶段&#xff0c;多账号布局成为企业提升市场份额、分散运营风险的核心策略。亚马逊、TikTok Shop、eBay、Shopee 等主流跨境平台&#xff0c;对账号环境的风控检测持续升级&#xff0c;AI 驱动的多维度交叉校验…...

研一科研第一步不知道如何下手?

研究生科研是一个从选题、文献积累到实验论证、成果呈现的完整闭环&#xff0c;每一个环节都离不开实用工具的加持。文献工具解决找文献、读文献的核心难题&#xff0c;绘图工具则助力整理数据、做可视化分析&#xff0c;二者直接影响科研效率与成果质量。​接下来我将为大家分…...

C#调用Phi-3/Mistral模型加速方案(Intel AMX+ML.NET 11.0.2私有编译版大曝光)

第一章&#xff1a;C#调用Phi-3/Mistral模型加速方案概览在.NET生态中实现轻量级大语言模型&#xff08;LLM&#xff09;推理&#xff0c;需兼顾跨平台兼容性、内存效率与低延迟响应。Phi-3&#xff08;3.8B参数&#xff0c;ONNX格式支持&#xff09;与Mistral-7B&#xff08;可…...

Bilibili缓存视频合并:Android用户的终极离线观看解决方案

Bilibili缓存视频合并&#xff1a;Android用户的终极离线观看解决方案 【免费下载链接】BilibiliCacheVideoMerge &#x1f525;&#x1f525;Android上将bilibili缓存视频合并导出为mp4&#xff0c;支持安卓5.0 ~ 13&#xff0c;视频挂载弹幕播放(Android consolidates and ex…...

VCS仿真器下UVM调试实战:手把手解决uvm_hdl_force权限与$urandom_range范围溢出

VCS仿真器下UVM调试实战&#xff1a;手把手解决uvm_hdl_force权限与$urandom_range范围溢出 在芯片验证领域&#xff0c;UVM&#xff08;Universal Verification Methodology&#xff09;已成为事实上的标准。然而&#xff0c;当我们在Synopsys VCS这样的商业仿真器上实现UVM验…...

SOCD Cleaner:终极键盘优化工具 - 5个关键优势提升游戏操作精度

SOCD Cleaner&#xff1a;终极键盘优化工具 - 5个关键优势提升游戏操作精度 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 在竞技游戏的微秒级对决中&#xff0c;你是否曾因同时按下W和S键导致角色卡顿&#x…...

从LED到激光器:一文搞懂半导体光电子器件的核心原理与设计差异

从LED到激光器&#xff1a;半导体光电子器件的核心原理与设计差异解析 当我们在夜晚点亮一盏LED台灯&#xff0c;或是使用光纤网络高速下载文件时&#xff0c;背后是两类截然不同却又紧密相关的半导体光电器件在发挥作用。LED&#xff08;发光二极管&#xff09;和半导体激光器…...

告别objdump!用Python的pwntools一键生成汇编对应的hex机器码(附Mac/Linux安装避坑)

告别objdump&#xff01;用Python的pwntools一键生成汇编对应的hex机器码&#xff08;附Mac/Linux安装避坑&#xff09; 在二进制安全研究和CTF竞赛中&#xff0c;快速将汇编指令转换为机器码是每个从业者的基本功。传统方法依赖gcc或nasm配合objdump工具链&#xff0c;不仅步骤…...

Xiaomi Cloud Tokens Extractor:解锁智能设备管理新维度的安全密钥提取工具

Xiaomi Cloud Tokens Extractor&#xff1a;解锁智能设备管理新维度的安全密钥提取工具 【免费下载链接】Xiaomi-cloud-tokens-extractor This tool retrieves tokens for all devices connected to Xiaomi cloud and encryption keys for BLE devices. 项目地址: https://gi…...

8大网盘直链下载助手完整指南:告别限速,轻松获取真实下载地址

8大网盘直链下载助手完整指南&#xff1a;告别限速&#xff0c;轻松获取真实下载地址 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中…...