news 2026/4/21 9:39:22

合并两个有序数组

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
合并两个有序数组

题目思路

两个数组非递减有序,合并到nums1且原地修改。

采用从后往前双指针:

i指向nums1有效尾部,j指向nums2尾部

k指向nums1最终尾部,每次放较大元素

最后把nums2剩余元素直接复制进nums1。

难点

从前向后会覆盖nums1原数据,必须从后往前

边界处理:m=0、n=0、一个数组先遍历完

void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) { int p1 = m - 1, p2 = n - 1; int tail = m + n - 1; int cur; while (p1 >= 0 || p2 >= 0) { if (p1 == -1) { cur = nums2[p2--]; } else if (p2 == -1) { cur = nums1[p1--]; } else if (nums1[p1] > nums2[p2]) { cur = nums1[p1--]; } else { cur = nums2[p2--]; } nums1[tail--] = cur; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 9:38:20

实战:用Java版TinyRadius客户端,给你的Spring Boot应用加上RADIUS双因素认证

实战:用Java版TinyRadius客户端为Spring Boot应用集成RADIUS双因素认证 在企业级应用开发中,安全认证始终是系统架构的核心环节。随着网络安全威胁日益复杂,传统的用户名密码认证已无法满足高安全场景需求。本文将深入探讨如何利用TinyRadius…

作者头像 李华
网站建设 2026/4/21 9:34:50

CSS如何提升CSS预处理器的编译效率_利用BEM结构优化选择器匹配

BEM通过扁平单类名选择器减少CSS匹配开销,避免后代选择器回溯,提升渲染性能;需严格遵循命名规范、合理使用Sass模块化和PostCSS配置,并以拆分CSS chunk优化体积。为什么BEM能减少CSS选择器匹配开销浏览器渲染时,CSS选择…

作者头像 李华
网站建设 2026/4/21 9:30:29

手把手教你用Matlab为PMSM电流环设计2P2Z补偿器(附与PI对比)

永磁同步电机电流环高阶补偿器设计实战:从2P2Z到多极点配置的进阶指南 在电机控制领域,传统PI控制器因其结构简单、参数直观而广受欢迎。但当面对高性能伺服驱动、精密运动控制等场景时,1P1Z结构的PI控制器往往显得力不从心。这时&#xff0c…

作者头像 李华
网站建设 2026/4/21 9:27:17

告别无效告警:用TscanCode高效扫描自研C++项目的完整流程与技巧

高效代码质量守护:TscanCode在C项目中的深度实践指南 当代码库规模突破十万行量级时,每个开发团队都会面临相似的困境:如何在不拖慢开发节奏的前提下,持续保证代码质量?传统的人工代码审查在大型项目中往往力不从心&am…

作者头像 李华