算法训练营第八天|合并两个有序数组

张开发
2026/4/21 1:18:23 15 分钟阅读

分享文章

算法训练营第八天|合并两个有序数组
今日学习的文章链接和视频链接https://www.bilibili.com/video/BV1Gr16B2EGf/自己看到题目的第一想法刚看到这道题的时候我第一反应是 “把第一个数组直接拼到 第一个数组后面。自己实现过程中遇到哪些困难1.一开始我想着从数组开头开始比较但是试了之后发现nums1 前面的有效元素被比较后后面的元素会被覆盖比如先比较 1 和 2把 1 放到 nums1 末尾那 nums1 原本的 2 就没地方存了越写越乱。2.当m0nums1 里没有有效元素只有一个 0或者n0nums2 为空的时候我写的代码直接报错比如 Case3 里 nums1 是[0]、m0我的代码直接跳过了所有逻辑结果还是[0]完全不对。3.一开始我把k--写在赋值前面导致赋值的位置错了合并出来的数组顺序完全乱了怎么调都不对。今日收获心得学会用逆向思维去解题这道题最关键的就是想到 “从后往前合并”因为 nums1 后面有足够的空位从末尾开始放最大的数就不会覆盖前面还没比较的有效元素这种思路比从前往后简单太多还不用额外占用空间。

更多文章