016:合并两个有序数组

LeetCode 88 https://leetcode.cn/problems/merge-sorted-array/description/ 难度:简单 高频面试题汇总:https://www.yuweihung.com/posts/2025/lc-hot/ 本题最简单的思路是使用额外的空间存储,最后复制回 nums1。那么有没有什么方案可以避免额外空间?答案是使用逆向双指针算法。从最后一个元素开始,将结果赋值到 nums1。这样可以避免 nums1 中元素被覆盖的问题。 时间复杂度:O(m+n)。 空间复杂度:O(1)。仅用到若干额外变量。 ...

六月 29, 2025 · Cassius

006:三数之和

LeetCode 15 https://leetcode.cn/problems/3sum/description/ 难度:中等 高频面试题汇总:https://www.yuweihung.com/posts/2025/lc-hot/ 首先,由于输出的顺序不重要,可以先将数组进行排序。然后,枚举第一个数,转化为两数之和 II(LeetCode 142)。为了排除重复答案,如果 i,j,k 与上一个元素相同,需要去重。 时间复杂度:O(\(n^ 2\)),其中 n 为 nums 的长度。排序 O(nlogn)。外层循环枚举第一个数,就变成 167. 两数之和 II - 输入有序数组 了,做法是 O(n) 双指针。所以总的时间复杂度为 O(\(n^ 2\))。 空间复杂度:O(1)。返回值不计入。忽略排序的栈开销。 ...

六月 27, 2025 · Cassius