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

leetcode 23. 合并 K 个升序链表

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

输入: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首先我们想到的是归并排序,对链表数组不断进行分割然后合并分割的链表
/*** 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://分左右递归不断分割链表ListNode* apart_list(int l,int r,vector<ListNode*>& lists)//区间是前闭后开{     //这道题并不会l>=r,但是如果传参失误则需要终止递归 看似多余实则不多余if(l>=r) return nullptr;if(r-l==1) return lists[l]; //表示当前区间只有一个元素lists[l] 有序直接返回即可int mid=(l+r)/2;            //确定中间值//返回排序后的左右分割链表return merge(apart_list(l,mid,lists),apart_list(mid,r,lists));}//合并lists[h]和lists[h1]链表ListNode* merge(ListNode* h,ListNode* h1){ListNode* temp=new ListNode(0);ListNode* l1=h;ListNode* l2=h1;ListNode* cur=temp;while(l1!=nullptr&&l2!=nullptr){if(l1->val>=l2->val){cur->next=l2;cur=cur->next;l2=l2->next;}else{cur->next=l1;cur=cur->next;l1=l1->next;}}cur->next=(l1==nullptr)? l2:l1;  Listnode* result=temp->next;delete temp;   //释放内存    return result;}ListNode* mergeKLists(vector<ListNode*>& lists) { int n=lists.size();if(n==0) return nullptr;       //链表数组为空返回nullptrif(n==1) return lists[0];      //链表数组为1直接返回lists[0]即可return apart_list(0,n,lists);  //返回分割的链表}
};

相关文章:

leetcode 23. 合并 K 个升序链表

给你一个链表数组&#xff0c;每个链表都已经按升序排列。 输入&#xff1a;lists [[1,4,5],[1,3,4],[2,6]] 输出&#xff1a;[1,1,2,3,4,4,5,6] 解释&#xff1a;链表数组如下&#xff1a; [1->4->5,1->3->4,2->6 ] 将它们合并到一个有序链表中得到。 1->…...

【Redis】深入解析Redis缓存机制:全面掌握缓存更新、穿透、雪崩与击穿的终极指南

文章目录 一、Redis缓存机制概述1.1 Redis缓存的基本原理1.2 常见的Redis缓存应用场景 二、缓存更新机制2.1 缓存更新的策略2.2 示例代码&#xff1a;主动更新缓存 三、缓存穿透3.1 缓存穿透的原因3.2 缓解缓存穿透的方法3.3 示例代码&#xff1a;使用布隆过滤器 四、缓存雪崩4…...

SQL语法——DQL查询

1.查询: 基础查询&#xff1a; select 列名1,列名2 from 表名; # 输入列名为*时为全查 条件查询&#xff1a; select 列名 from 表名 where 条件; #条件中含字符串时为字符串...

云计算.运维.面试题

1、计算机能直接识别的语言( C )。 A、汇编语言 B、自然语言 C、机器语言 D、高级语言 2、应用软件是指( D )。 A、所有能够使用的软件 B、能被各应用单位共同使用的某种软件 C、所有计算机上都应使用的基本软件D、专门为某一应用目的而编制的软件 3、计算机的显示器是一…...

基于vue和vite的计算器

实现思路&#xff1a;1.撰写方案三次迭代&#xff08;得到方案、项目结构、提问的prompt&#xff09; 2. 功能实现 3. 优化迭代 计算器项目方案设计&#xff08;阶段一&#xff09; 一、项目基本信息 项目名称&#xff1a;基于 Vue 和 Vite 的计算器项目 技术栈&#xff1a; 前…...

《OpenCV:视觉世界的魔法钥匙》

《OpenCV&#xff1a;视觉世界的魔法钥匙》 一、OpenCV 是什么1. 起源与发展支持2. 特点与优势3. 编程语言支持 二、OpenCV 的发展历程1. 重要版本发布时间线2. 版本更新内容 三、OpenCV 的主要功能1. 图像处理2. 特征提取3. 目标检测4. 运动分析5. 人脸识别6. 其他功能 四、Op…...

部署kafka并通过python操作

目录 一、安装JDK1.81、检查服务器是否已安装JDK2、若已安装JDK&#xff0c;进行卸载3、更新yum源4、搜索JDK1.8安装包5、安装JDK1.86、查看是否安装成功7、配置环境变量 二、安装Kafka1、下载并解压kafka部署包至/usr/local/目录2、修改server.properties3、修改/etc/profile4…...

【JAVA】Java高级:数据库监控与调优:SQL调优与执行计划的分析

作为Java开发工程师&#xff0c;理解SQL调优和执行计划的分析是至关重要的。这不仅可以帮助我们提高数据库查询的效率&#xff0c;还能减少系统资源的消耗&#xff0c;提升整体应用的性能。 1. SQL调优的重要性 随着数据量的增加和用户请求的增多&#xff0c;数据库的性能问题…...

【单片机开发】MCU三种启动方式(Boot选择)[主Flash/系统存储器(BootLoader)/嵌入式SRAM]

目录 参考资料&#xff1a; 利用 Boot 选择不同的启动方式&#xff1a; 单片机的存储结构(主 FLASH/系统存储器/嵌入式 SRAM)&#xff1a; 1. Cortex-M 内核芯片——启动原理&#xff1a; 1.1. 启动流程&#xff1a; 1.2. 根据单片机的存储器映射和架构图&#xff1a;启动…...

跨库移植 SQL

背景 应用程序可能要基于不同数据库工作&#xff0c;各种数据库的 SQL 语法大体一致&#xff0c;但仍有些差别&#xff0c;结果就要改造这些 SQL&#xff0c;而这事通常只能手工调整&#xff0c;工作量大还容易出错。 完全自动改造 SQL 几乎是无法做到的&#xff0c;毕竟各种…...

(软件测试文档大全)测试计划,测试报告,测试方案,压力测试报告,性能测试,等保测评,安全扫描测试,日常运维检查测试,功能测试等全下载

1. 引言 1.1. 编写目的 1.2. 项目背景 1.3. 读者对象 1.4. 参考资料 1.5. 术语与缩略语 2. 测试策略 2.1. 测试完成标准 2.2. 测试类型 2.2.1. 功能测试 2.2.2. 性能测试 2.2.3. 安全性与访问控制测试 2.3. 测试工具 3. 测试技术 4. 测试资源 4.1. 人员安排 4.2. 测试环境 4.2.…...

Vue前端开发-路由跳转及带参数跳转

在Vue 3中&#xff0c;由于没有实例化对象this&#xff0c;因此&#xff0c;无法通过this去访问 $route对象&#xff0c;而是通过导入一个名为 useRouter 的方法&#xff0c;执行这个方法后&#xff0c;返回一个路由对象&#xff0c;通过这个路由对象就可以获取到当前路由中的信…...

服务器上安装 Node.js

在服务器上安装 Node.js 的过程根据你使用的操作系统和环境可能会有所不同。以下是一些常见的 Linux 发行版&#xff08;如 Ubuntu 或 CentOS&#xff09;上的安装步骤。 在基于 Red Hat/CentOS 的系统上安装 Node.js 设置 EPEL 仓库 如果没有启用 EPEL (Extra Packages for E…...

在阿里云/Linux环境搭建Gitblit服务

在阿里云/Linux环境搭建Gitblit服务 1. 整体描述2. 前期准备3. 安装步骤3.1 下载gitblit3.2 上传gitblit3.3 解压文件3.4 修改文件配置3.5 启动gitblit3.6 安全组配置 4. 总结 1. 整体描述 前段时间买了一个阿里云服务器&#xff0c;2核2G&#xff0c;3M固定带宽的配置&#x…...

MicroBlaze软核开发(二):GPIO

实现功能&#xff1a;使用 MicroBlaze软核&#xff0c;配置GPIO用拨码开关控制LED灯 Vivado版本&#xff1a;2018.3 目录 引言 vivado部分&#xff1a; 一、配置GPIO 二、生成HDL文件编译 SDK部分&#xff1a; 一、导出硬件启动SDK 二、新建应用程序工程 三、编写程序代…...

threejs相机辅助对象cameraHelper

为指定相机创建一个辅助对象&#xff0c;显示这个相机的视锥。 想要在场景里面显示相机的视锥&#xff0c;需要创建两个相机。 举个例子&#xff0c;场景中有个相机A&#xff0c;想要显示相机A的视锥&#xff0c;那么需要一个相机B&#xff0c;把B放在A的后面&#xff0c;两个…...

Luma 视频生成 API 对接说明

Luma 视频生成 API 对接说明 随着 AI 的应用变广&#xff0c;各类 AI 程序已逐渐普及。AI 已逐渐深入到人们的工作生活方方面面。而 AI 涉及的行业也越来越多&#xff0c;从最初的写作&#xff0c;到医疗教育&#xff0c;再到现在的视频。 Luma 是一个专业高质量的视频生成平…...

服务器数据恢复—EVA存储硬盘磁头和盘片损坏离线的数据恢复案例

服务器存储数据恢复环境&故障&#xff1a; 一台HP EVA存储中有23块硬盘&#xff0c;挂接到一台windows server操作系统的服务器。 EVA存储上有三个硬盘指示灯亮黄灯&#xff0c;此刻存储还能正常使用。管理员在更换硬盘的过程中&#xff0c;又出现一块硬盘对应的指示灯亮黄…...

【Python】深入探索Python类型检查:掌握 `typing` 模块的高级用法

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 随着代码复杂度的增加,类型安全性在现代开发中变得尤为重要。Python自3.5引入类型提示(type hints),为开发者提供了静态类型检查的能力,而typing模块则是这一系统的核心。本篇文章深入研究Python的类型提示及…...

Android学习15--charger

1 概述 最近正好在做关机充电这个&#xff0c;就详细看看吧。还是本着保密的原则&#xff0c;项目里的代码也不能直接用&#xff0c;这里就用的Github的。https://github.com/aosp-mirror 具体位置是&#xff1a;https://github.com/aosp-mirror/platform_system_core/tree/mai…...

告别盲目构筑烦恼:Path of Building带来的流放之路角色优化变革

告别盲目构筑烦恼&#xff1a;Path of Building带来的流放之路角色优化变革 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/gh_mirrors/pat/PathOfBuilding 在《流放之路》的世界里&#xff0c;每一个角色构…...

VRRP配置里这个‘坑’你踩过吗?详解track监视上行链路与流量黑洞问题

VRRP高可用架构中的隐形陷阱&#xff1a;深度解析上行链路监控与流量黑洞解决方案 当企业核心网络的网关设备突然"失联"&#xff0c;但设备状态灯却依然闪烁着健康的绿色&#xff0c;这种看似矛盾的故障场景往往让运维团队陷入困境。上周深夜&#xff0c;某金融公司就…...

Go Routine 调度器架构分析

Go Routine调度器架构分析 Go语言凭借其轻量级的并发模型在开发者中广受欢迎&#xff0c;而Go Routine调度器正是这一模型的核心。它高效地管理成千上万的协程&#xff0c;确保它们在有限的系统线程上合理运行。本文将深入分析Go Routine调度器的架构设计&#xff0c;帮助读者…...

抖音无水印视频批量获取高效解决方案:从技术原理到场景落地

抖音无水印视频批量获取高效解决方案&#xff1a;从技术原理到场景落地 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 在数字内容管理领域&#xff0c;高效获取抖音视频一直是内容创作者、研究者和企业运营…...

OpenClaw错误处理:QwQ-32B生成有误时的自动修正方案

OpenClaw错误处理&#xff1a;QwQ-32B生成有误时的自动修正方案 1. 为什么需要关注大模型生成错误 上周我让OpenClaw自动整理项目文档时&#xff0c;遇到了一个令人哭笑不得的场景。QwQ-32B模型将"API响应时间优化"错误生成为"API响应时间恶化"&#xff…...

如何快速实现Figma中文界面:设计师必备的免费本地化插件

如何快速实现Figma中文界面&#xff1a;设计师必备的免费本地化插件 【免费下载链接】figmaCN 中文 Figma 插件&#xff0c;设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 你是否曾因Figma的英文界面而感到困扰&#xff1f;想要专注于设计创…...

HarmonyOS6 半年磨一剑 - RcTextarea 组件状态管理与禁用只读机制

文章目录 前言一、焦点状态机1.1 isFocused 驱动的 UI 变化1.2 焦点事件处理流程 二、禁用与只读的本质区别2.1 技术实现对比2.2 视觉表现差异2.3 清空按钮的保护逻辑 三、清空按钮的智能显示策略3.1 双重触发模式3.2 清空按钮的渲染位置3.3 清空操作的完整流程 四、自动聚焦与…...

银河麒麟V10 SP1安全基线配置踩坑记:为什么pam_wheel.so的group=wheel参数会失效?

银河麒麟V10 SP1安全基线配置深度解析&#xff1a;从pam_wheel.so失效看系统级安全加固实战 第一次在银河麒麟V10 SP1上配置安全基线时&#xff0c;我盯着终端屏幕足足愣了三分钟。按照多年Linux系统管理经验&#xff0c;我在/etc/pam.d/su中加入了标准的groupwheel参数&#x…...

Python爬虫实战:如何绕过央视频加密获取高清视频源(附完整代码)

Python爬虫进阶&#xff1a;视频流媒体解析技术深度剖析 在数字内容消费爆炸式增长的今天&#xff0c;视频平台的技术防护手段也在不断升级。对于开发者而言&#xff0c;理解现代流媒体平台的加密与传输机制&#xff0c;不仅能提升技术视野&#xff0c;更能为合法合规的数据分析…...

智炬星图:在AI星海中,为您点亮诚信与实力的导航灯塔

在数字时代的浪潮中&#xff0c;人工智能已成为驱动产业变革的核心引擎。然而&#xff0c;面对市场上琳琅满目的AI服务商&#xff0c;企业往往陷入选择困境&#xff1a;究竟哪家机构值得信赖&#xff1f;哪家公司能提供真正高效、可靠的智能解决方案&#xff1f;今天&#xff0…...