news 2026/6/10 12:47:37

【每天学习一点算法 2025/12/23】合并两个有序数组

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【每天学习一点算法 2025/12/23】合并两个有序数组

每天学习一点算法 2025/12/23

题目:合并两个有序数组

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。

请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。

注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。

  1. 最直观的方法就是直接将两个数组合并再排序。

    functionmerge(nums1:number[],m:number,nums2:number[],n:number):void{n&&nums1.splice(-n)// 移除末尾的 0// 合并两个数组nums2.map((item:number)=>{nums1.push(item)})// 排序nums1.sort((a,b)=>a-b)}
  2. 还有就是用双指针比较数字大小然后在对应位置插入数字

    functionmerge(nums1:number[],m:number,nums2:number[],n:number):void{leti=0// nums1指针letj=0// nums2指针// 移动两个指针直到某个数组遍历完, 注意 i 的边界要加上插入的值while(j<n&&i<m+j){// 比较指针指向的两个数字,将num2中较小数字插入到nums1指针指向处if(nums1[i]>nums2[j]){nums1.splice(i,0,nums2[j])j++}i++}n&&nums1.splice(-n)// 移除末尾的 0// 如果i移动到nums1末尾 nums2还没遍历完 将剩下的元素push进去就行while(j<n){nums1.splice(i++,0,nums2[j])j++}}

题目来源:力扣(LeetCode)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 15:08:04

基于SpringBoot的小区物业管理系统(程序+文档+讲解)

课题介绍在社区治理精细化、物业服务智能化需求升级的背景下&#xff0c;传统小区物业存在 “工单处理滞后、缴费对账繁琐、业主沟通不畅” 的痛点&#xff0c;基于 SpringBoot 构建的小区物业管理系统&#xff0c;适配业主、物业管理员、维修人员、社区网格员等角色&#xff0…

作者头像 李华
网站建设 2026/6/10 8:34:42

Windows系统文件mssph.dll丢失找不到问题 下载修复方法

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/6/9 21:15:58

【收藏学习】大模型智能体入门到精通:核心技术与开发实战

在过去的几年中&#xff0c;以 OpenAI 的 ChatGPT、Google 的 Gemini 以及 Anthropic 的 Claude 为代表的大语言模型&#xff08;LLMs&#xff09;&#xff0c;已成为我们工作和数字系统交互中不可或缺的一部分。现代 LLM 具备生成代码、撰写文档、翻译语言、总结复杂信息&…

作者头像 李华
网站建设 2026/6/10 12:26:47

清华大学:用最简单的方法让小AI模型在数学推理上大放异彩

这项由清华大学何丙祥、曲泽凯、刘泽远等研究团队联合伊利诺伊大学香槟分校钱程以及上海人工智能实验室崔赣渠共同完成的研究发表于2025年12月&#xff0c;展现了一个令人惊讶的发现&#xff1a;在人工智能训练领域&#xff0c;有时候最简单的方法反而能取得最好的效果。这项名…

作者头像 李华