合并两个有序数组

从最大的开始排列,排完之后剩余的塞入nums1前面即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/**
* @param {number[]} nums1
* @param {number} m
* @param {number[]} nums2
* @param {number} n
* @return {void} Do not return anything, modify nums1 in-place instead.
*/
var merge = function (nums1, m, nums2, n) {
let len = m + n - 1,
idx1 = m - 1,
idx2 = n - 1;
while (len >= 0) {
while (idx1 >= 0 && idx2 >= 0) {
if (nums1[idx1] >= nums2[idx2]) {
nums1[len--] = nums1[idx1--];
} else {
nums1[len--] = nums2[idx2--];
}
}
if (idx1 >= 0) {
while (idx1 >= 0) {
nums1[len--] = nums1[idx1--];
}
}
if (idx2 >= 0) {
while (idx2 >= 0) {
nums1[len--] = nums2[idx2--];
}
}
}
};

本站由 ao 使用 Stellar 1.29.1 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。