尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
LeetCode 88. Merge Sorted Array
题目Given two sorted integer arraysnums1andnums2, mergenums2intonums1as one sorted array.Note:The number of elements initialized innums1andnums2aremandnrespectively.You may assume thatnums1has enough space (size that is greater or equal tomn) to hold additional elements fromnums2.Example:Input:nums1 [1,2,3,0,0,0], m 3 nums2 [2,5,6], n 3Output:[1,2,2,3,5,6]再时隔接近四年回来。确实还是没想到要从后往前。知道以后写代码就非常顺利了除了typo了一下nums1和nums2以外。感觉so easy但是不知道以前为啥想不明白orzclass Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int i m - 1; int j n - 1; int index nums1.length - 1; while (i 0 j 0) { if (nums1[i] nums2[j]) { nums1[index] nums1[i]; i--; } else { nums1[index] nums2[j]; j--; } index--; } while (i 0) { nums1[index] nums1[i]; index--; i--; } while (j 0) { nums1[index] nums2[j]; index--; j--; } } }时隔三年半回来update java解法。刚开始没想到要从后往前想着从前往后一个个挪怎么也不可能O(mn)偷看了一下思路才觉得妙啊。于是就自己写出来了虽然也没有一次bug free并且第一版提交的代码还多了一行没用的if。大概就是两个指针分别指向两个数组的有效末端一个指针指向nums1应该更新的位置两个指针谁大就把谁往后面放。个人觉得用作为结束条件会比较好想清楚一些当任何一个 0以后就停止我们慢慢判断。如果第一个还 0那就说明第二个结束了那第一个本来就是sorted了所以不用管。如果第二个 0那就说明第一个也结束了只需要把第二个剩下的无脑copy到第一个里去就行了。看了答案大部分人都是用的while但是我感觉for更直观。class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int curr1 m - 1; int curr2 n - 1; int index m n - 1; while (curr1 0 curr2 0) { if (nums1[curr1] nums2[curr2]) { nums1[index] nums1[curr1]; curr1--; } else { nums1[index] nums2[curr2]; curr2--; } index--; } for (int i 0; i curr2; i) { nums1[i] nums2[i]; } } }底下以前巨菜的时候写的就真不用看了。这道题需要merge两个数组并且把第二个数组合并到第一个数组中第一个数组的长度是两个数组的长度之和但是有效长度是固定的。刚开始觉得题目很简单直接两个指针分别指向两个数组然后比较谁大谁小nums2的小了就先把nums1后面的数组往后移一位然后把nums2当前这位放到nums1的对应位置。虽然代码写得不是很优雅但我觉得没毛病啊自己运行也是没毛病的但是一提交就runtime error了把这个test case自己run一下也没毛病不太懂class Solution { public: void merge(vectorint nums1, int m, vectorint nums2, int n) { if (nums2.size() 0) return; int i 0, j 0; while (i m) { if (nums1[i] nums2[j]) { for (int k nums1.size() - 1; k i; k--) { nums1[k] nums1[k - 1]; } nums1[i] nums2[j]; j; m; } else { i; } } while (j n) { nums1[i] nums2[j]; i; j; } } };submit以后的结果自己run的结果如果有哪位大佬正好路过看到了的话麻烦帮忙指正一下是什么问题谷歌了一下感觉都跟我这个不太一样……然后看了下discussion里大家的代码整体思路感觉都差不多但是i, j都是从m, n开始往下降的并且设置的k记录的是已经merge好的数组的长度也就是说大家都是从后往前进行合并而非我的做法那样的从前往后。参照大佬们优雅的代码写抄了出来代码如下运行时间0msclass Solution { public: void merge(vectorint nums1, int m, vectorint nums2, int n) { if (nums2.size() 0) return; int i m - 1, j n - 1, k m n - 1; while (i 0 j 0) { if (nums1[i] nums2[j]) { nums1[k--] nums1[i--]; } else { nums1[k--] nums2[j--]; } } while (j 0) { nums1[k--] nums2[j--]; } } };
RELATED

相关推荐

从零开始理解 Instatic:一个正在重塑 Node.js 体验的运行时

从零开始理解 Instatic:一个正在重塑 Node.js 体验的运行时

🌊 专注 AI 大模型与前沿科技深度解析,习惯从工程师视角拆解技术热点,让我们一起在技术浪潮中保持清醒与好奇 🚀从零开始理解 Instatic:一个正在重塑 Node.js 体验的运行时 在开发者社区的日常信息流中,偶尔…

📅 2026/10/4 7:38:41
400电话漏接与呼入异常:企业高频故障排查完整思路(2026最新版)

400电话漏接与呼入异常:企业高频故障排查完整思路(2026最新版)

摘要 400电话漏接、响一声断线、部分地区无法呼入、转接失败、语音提示异常等问题,往往是企业通信链路中多层环节共同作用的结果。本文基于运营商接入侧、语音平台侧、企业终端侧三大维度,系统梳理400电话高频故障的分层排查路径与判断方法,提…

📅 2026/10/8 21:53:57
CVE-2026-31431 (Copy Fail) 渗透测试报告

CVE-2026-31431 (Copy Fail) 渗透测试报告

CVE-2026-31431 (Copy Fail) 渗透测试报告漏洞复现报告 | Linux Kernel 本地权限提升漏洞 仓库:cve-reproduce-reports一、漏洞概述项目内容漏洞名称Copy FailCVE 编号CVE-2026-31431公开披露日期2026-04-29补丁提交日期2026-04-01漏洞类型本地权限提升(…

📅 2026/10/7 5:55:01
MORE NEWS

更多资讯

📰

哥德巴赫猜想验证:嵌入式级素数判定与输入安全实践

1. 为什么这个“简化版哥德巴赫猜想验证”不是数学证明,而是程序员的必修课你可能在高中数学拓展读物里见过它:任何一个大于6的偶数,都能拆成两个素数相加。比如10 3 7,14 3 11,22 5 17……看起来简单得像小学奥…

📰

2025银发产业分水岭:新老人需求、政策赋能与五大赛道机会

2025年初之前,我对银发产业的判断一直是“规模很大、生意难做”。真正动摇这个判断的,是过去半年多一段很密集的调研:跑社区、看机构、跟各种试点项目的人聊,也陪一些长辈聊他们每天真正在用的东西。报告做到最后,我自…

📰

不改正极、不加新添加剂,几个电解液配比就把富锂锰基正极的锰溶解压掉63%

富锂锰基(LMR)这类高能正极产业化最大的拦路虎,是锰溶解引发的结构塌陷和电压衰减——此前主流都靠"电解质界面/包覆"这一层去堵,工程又贵又不彻底。这篇阿贡国家实验室 的工作,切进一个常被忽视的维度&…

📰

俳句翻译实战拆解:从17音、季语到切れ字的基本功

把一首十七个音节的日本俳句翻译成中文,好的译文不是让你读通,而是让你在句号之后多停一秒。我最近在整理一份署名译者的《芭蕉俳句》四首选原译稿,所谓原译,就是直接从芭蕉的日语原文译出,不经过英译本或者其他语种的…

📰

ssrf跨站请求伪造(保姆级教程)

原理SSRF(服务器端请求伪造)的本质是让服务器成为攻击者的代理。当应用程序需要“替用户”去访问一个远程资源时,如果未能对用户提供的目标地址进行严格限制,攻击者就能诱导服务器向本不该访问的内部系统发起请求。漏洞位置第一类…

📰

Spring Boot+Java民族婚纱预定系统:档期锁与定金支付实战

做了快十年的业务系统,我越来越觉得,很多项目失败不是因为技术难,而是因为一开始就把业务想错了。就拿民族婚纱预定系统来说,如果只是把一套普通电商的预定模块搬过来,把几个字段改成“民族婚纱”,这套系统…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬