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

[C/C++] List相关操作

List相关操作

1 链表二分

目标:
(1)对于偶数节点,正好对半分;
(2)对于奇数节点,前 = 后 + 1
(3)断开链表,方便后期合并

// 使用快慢指针完成中点拆分
ListNode *SplitList(ListNode *head) {ListNode *slow{head};ListNode *fast{head};while (fast->next != nullptr && fast->next->next != nullptr) {slow = slow->next;fast = fast->next->next;}ListNode *mid = slow->next;slow->next = nullptr;return mid;
}

2 链表合并

ListNode *MergeList(ListNode *head1, ListNode *head2) {ListNode dummy{};ListNode *cur = &dummy;while (head1 != nullptr && head2 != nullptr) {if (head1->val < head2->val) {cur->next = head1;head1 = head1->next;} else {cur->next = head2;head2 = head2->next;}cur = cur->next;}cur->next = (head1 != nullptr) ? head1 : head2;return dummy.next;
}

3 链表排序

ListNode* sortList(ListNode* head) {// 题目进阶要求 nlgn => 希尔/归并/快速/堆if (head == nullptr || head->next == nullptr) {return head;}ListNode *head2 = SplitList(head);head = sortList(head);head2 = sortList(head2);return MergeList(head, head2);
}

4 多链表合并

ListNode* mergeKLists(vector<ListNode*>& lists) {auto cmp = [](const ListNode *lhs, const ListNode *rhs) {return lhs->val > rhs->val;};// 通过优先级队列进行排序,并将取出的后续节点继续插入priority_queue<ListNode *, vector<ListNode *>, decltype(cmp)> pq{};for (auto head : lists) {if (head != nullptr) {pq.push(head);}}ListNode dummy{};ListNode *cur = &dummy;while (!pq.empty()) {// 取最小ListNode *node = pq.top();pq.pop();if (node->next != nullptr) {pq.push(node->next);}cur->next = node;cur = node;}return dummy.next;
}

相关文章:

[C/C++] List相关操作

List相关操作 1 链表二分 目标&#xff1a; &#xff08;1&#xff09;对于偶数节点&#xff0c;正好对半分&#xff1b; &#xff08;2&#xff09;对于奇数节点&#xff0c;前 后 1 &#xff08;3&#xff09;断开链表&#xff0c;方便后期合并 // 使用快慢指针完成中点…...

继电器控制与C++编程:实现安全开关控制的技术分享

在现代生活中,继电器作为一种重要的电气控制元件,在电气设备的安全控制中起到了至关重要的作用。通过低电流控制高电流,继电器能够有效地隔离控制电路与被控设备,从而保障使用者的安全。本项目将介绍如何通过树莓派Pico与继电器模块结合,使用C++编程实现继电器的控制。 一…...

题解 - 找子序列(2024.12上海月赛丙组T4)

题目描述 Dave 有一个长度为 n 的非负整数序列 a1-n, 和一个非负整数 m 。 他希望知道是否有一个 a 的非空子序列&#xff0c;使得子序列中所有元素的按位与(bitwise AND)结果为 m。 换言之&#xff0c;他想知道是否存在一个下标序列 i1-k(k ≥ 1),满足 1 ≤ i1 < i2 < …...

在centos 7.9上面安装mingw交叉编译工具

1.说明 为了在centos上面编译windows的程序&#xff0c;需要安装mingw工具&#xff0c;mingw工具是可以编译windows程序的一些工具链&#xff0c;使用方式和linux一致 2.下载脚本 使用脚本方式编译&#xff0c;github的脚本位置&#xff1a;https://github.com/Zeranoe/ming…...

ubuntu wine mobaxterm找不到串口和解决方案

安装好 打开MobaXterm时发现&#xff0c;没有可供选择的串口 我们再检查wine设备映射 ls -la ~/.wine/dosdevices/ 串口是存在的&#xff0c;我们再来一番神操作&#xff0c;并没有回滚操作&#xff0c;不知是否是必要修改 打开 注册表&#xff0c;在HKEY_LOCAL_MACHINE中的…...

如何编译安装系统settings设置应用(5.0.0-Release)

本文介绍如何在OpenHarmony 5.0.0 r版本中修改系统设置应用&#xff0c;并且编译安装到开发板上 开发环境 1.dayu200开发板 2.OpenHarmony 5.0.0r 固件 3.API12 full sdk &#xff08;如果安装full sdk过程中出现报错hvigor ERROR: Cannot find module typescript,请参考 h…...

<项目代码>YOLOv8 车牌识别<目标检测>

项目代码下载链接 &#xff1c;项目代码&#xff1e;YOLOv8 车牌识别&#xff1c;目标检测&#xff1e;https://download.csdn.net/download/qq_53332949/90121387YOLOv8是一种单阶段&#xff08;one-stage&#xff09;检测算法&#xff0c;它将目标检测问题转化为一个回归问题…...

协同办公软件新升级:细节优化,让办公更简单

细节决定成败&#xff0c;企业酷信协同办公系统通过贴近客户实际需求的一系列改进和创新&#xff0c;在技术架构、系统结构、管理理念和使用性能上&#xff0c;都达到了国内先进水平&#xff0c;同时具备独特的优势。让我们看看企业酷信是如何通过这些细节提升&#xff0c;为企…...

【原创学习笔记】西门子1200 PLC实现变频器控制

一、实现的功能及应用的场合 通过PLC的不同指令&#xff0c;发送指令控制电机的启停和速度大小 二、硬件配置 1、西门子1214 PLC 2.TIA V16 3.SINAMICS G120C 三、实现功能步骤 1.添加设备G120C PN-调整以太网地址 根据实际情况选择有无滤波器&#xff0c;电机参数&#xf…...

SQL server学习02-使用T-SQL创建数据库

目录 一&#xff0c; 使用T-SQL创建数据库 1&#xff0c;数据库的存储结构 2&#xff0c;创建数据库的语法结构 1&#xff09;使用T-SQL创建学生成绩管理数据库 二&#xff0c;使用T-SQL修改数据库 1&#xff0c;修改数据库的语法结构 1&#xff09;修改学生成绩管理数…...

2024153读书笔记|《春烂漫:新平摄影作品选》——跳绳酷似人生路,起落平常,进退平常,莫惧征途万里长

2024153读书笔记|《春烂漫&#xff1a;新平摄影作品选》——跳绳酷似人生路&#xff0c;起落平常&#xff0c;进退平常&#xff0c;莫惧征途万里长 《春烂漫&#xff1a;新平摄影作品选》作者新平&#xff0c;2019.12.25年读完的小书&#xff0c;当时就觉得挺不错&#xff0c;今…...

MySQL有哪些高可用方案?

大家好&#xff0c;我是锋哥。今天分享关于【MySQL有哪些高可用方案?】面试题。希望对大家有帮助&#xff1b; MySQL有哪些高可用方案? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 MySQL 高可用方案旨在确保数据库系统的高可靠性、低宕机时间、以及在硬件故障…...

前台进程是什么

前台进程是什么 前台进程的定义 前台进程是指在操作系统中&#xff0c;与用户当前正在交互的进程。这些进程通常拥有最高的优先级&#xff0c;因为它们直接影响用户体验&#xff0c;是用户正在关注或者正在使用的应用程序对应的进程。例如&#xff0c;当你在手机上打开一个游戏…...

Redis学习笔记之——学习计划

Redis——Remote Dictionary Server&#xff0c;开源、基于内存、速度快、key-value... Redis做为一个高性能的键值存储系统&#xff0c;广泛应用于缓存、会话存储、分布式锁以及其他需要快速访问的数据场景中。熟悉掌握redis&#xff0c;似乎已成为广大码农们必备的一项技能。…...

npm : 无法加载文件 D:\nodejs\npm.ps1

问题描述 npm run serve 启动一个Vue项目&#xff0c;报错如下&#xff1a; npm : 无法加载文件 D:\nodejs\npm.ps1&#xff0c;因为在此系统上禁止运行脚本。有关详细信息&#xff0c;请参阅 https:/go.microsoft.com/fwlink/? LinkID135170 中的 about_Execution_Policies。…...

【Neo4J】neo4j docker容器下的备份与恢复

文章目录 一. 官网说明1. 操作说明2. 注意事项 二. docker 容器化操作1. 导出&#xff08;备份&#xff09;停止容器执行备份 2. 导入&#xff08;恢复&#xff09;停止容器(如果未停止)执行导入 3. 启动容器 一. 官网说明 https://neo4j.com/docs/operations-manual/current/…...

更新数据时Redis的操作

一般做法是在数据库更新后删除Redis中对应的缓存数据&#xff0c;而非更新数据。那么为什么要这么做呢&#xff1f; 以下是一些拙见 场景使用 金融交易系统&#xff1a;在金融领域&#xff0c;数据的准确性至关重要。任何数据不一致都可能导致严重的财务损失。因此&#xff0…...

[实战]MySQL时间多了一秒

场景 同时保存一条数据在MySQL和Redis中&#xff0c;JAVA系统中显示Redis和MySQL数据差了一秒&#xff0c;即MySQL比Redis中快了一秒。 复现 我们系统中MySQL的时间类型用的是timestamp&#xff0c;问题是一样的。 CREATE TABLE test_date (id int(11) NOT NULL AUTO_INCRE…...

Windows环境基于ecplise的spring boot框架新建spring start project

SpringToolSuite4 新建项目实例 前言Windows基于ecplise 工具的spring boot 架构 前言 使用Spring boot 框架向前端传输数据 Windows基于ecplise 工具的spring boot 架构 spring-tool-suite-4官网下载链接spring tool&#xff0c;下载太慢的话可以使用迅雷加速&#xff0c;右…...

C 进阶 — 字符函数和字符串函数 ( 二 )

C 进阶 — 字符函数和字符串函数 ( 二 ) 书接上回 C 进阶 — 字符函数和字符串函数 ( 一 ) 1.9 strtok 参考资料 strtok 函数用法详解 char * strtok ( char * str, const char * sep );strtok 是 [C 标准库](https://so.csdn.net/so/search?qC 标准库&spm1001.2101.3…...

终极Windows和Office激活指南:KMS_VL_ALL_AIO完整教程

终极Windows和Office激活指南&#xff1a;KMS_VL_ALL_AIO完整教程 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows和Office激活烦恼吗&#xff1f;每次系统提示"产品未激活&q…...

选择AutoCAD许可管理工具的七大关键评估维度

智能选择AutoCAD许可管理工具的七大关键维度你正在为AutoCAD许可证管理找工具&#xff0c;这是个门槛高的活&#xff0c;就是不光是没门路我帮你梳理出七大关键评估维度&#xff0c;帮你少踩坑&#xff0c;多省钱。许可方式匹配是否够精细&#xff1f;AutoCAD的许可机制越细化&…...

FigmaCN技术解析:本地化方案如何实现设计效率优化

FigmaCN技术解析&#xff1a;本地化方案如何实现设计效率优化 【免费下载链接】figmaCN 中文 Figma 插件&#xff0c;设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 中文设计师在使用Figma时&#xff0c;常因界面语言障碍导致操作效率降低30…...

KEPServerEX深度解析:工业数据采集与OPC UA通信的实战指南

1. KEPServerEX&#xff1a;工业数据采集的"万能转换器" 想象一下&#xff0c;工厂里躺着几十台不同品牌的PLC设备&#xff0c;有的用西门子S7协议&#xff0c;有的用三菱的MC协议&#xff0c;还有的用Modbus RTU——它们就像说着不同方言的人&#xff0c;互相听不懂…...

Neko疑难排解大全:常见问题与解决方案清单

Neko疑难排解大全&#xff1a;常见问题与解决方案清单 【免费下载链接】Neko Unofficial MangaDex Reader for Android 7 项目地址: https://gitcode.com/gh_mirrors/nek/Neko Neko是一款专为Android设备设计的免费开源漫画阅读器&#xff0c;专注于MangaDex平台的内容浏…...

Pixel Aurora Engine效果展示:极光视觉系统UI与生成图像色调自动匹配机制

Pixel Aurora Engine效果展示&#xff1a;极光视觉系统UI与生成图像色调自动匹配机制 1. 像素极光引擎概览 Pixel Aurora Engine是一款融合复古美学与现代AI技术的创意工具&#xff0c;它将扩散模型的高质量图像生成能力与8-bit像素艺术风格完美结合。这款"虚拟游戏机&q…...

开源激活工具KMS_VL_ALL_AIO:Windows与Office智能激活全场景攻略

开源激活工具KMS_VL_ALL_AIO&#xff1a;Windows与Office智能激活全场景攻略 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 在数字化办公环境中&#xff0c;系统与办公软件的激活状态直接影响工…...

GoJieba词性标注功能实战:从基础用法到高级配置

GoJieba词性标注功能实战&#xff1a;从基础用法到高级配置 【免费下载链接】gojieba "结巴"中文分词的Golang版本 项目地址: https://gitcode.com/gh_mirrors/go/gojieba GoJieba作为"结巴"中文分词的Golang版本&#xff0c;提供了强大的中文处理能…...

STK实战:从星地/星间链路建模到数据高效提取的工程化路径

1. STK在卫星通信系统建模中的核心价值 第一次接触STK&#xff08;Systems Tool Kit&#xff09;时&#xff0c;我被它强大的太空环境仿真能力震撼到了。这款由AGI公司开发的软件&#xff0c;就像给工程师装上了"太空望远镜"&#xff0c;能清晰看到每颗卫星的运行轨迹…...

别再手动编译了!用vcpkg在VS2022里一键安装Boost库(Windows 10/11保姆级教程)

现代C开发者的效率革命&#xff1a;用vcpkg在VS2022中极速部署Boost库 如果你还在手动下载、编译、配置Boost库&#xff0c;那么是时候拥抱现代C开发工具链了。作为C标准库的重要补充&#xff0c;Boost提供了超过160个经过严格测试的组件&#xff0c;从智能指针到并发编程&…...