0%

88.合并两个有序数组

双指针

时间复杂度 $O(m+n)$

空间复杂度 $O(1)$

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int p1 = m - 1, p2 = n - 1;
for (int i = m + n - 1; i >= 0; i--) {
int x1 = p1 >= 0 ? nums1[p1] : Integer.MIN_VALUE;
int x2 = p2 >= 0 ? nums2[p2] : Integer.MIN_VALUE;
if (x1 > x2) {
nums1[i] = x1;
p1--;
} else {
nums1[i] = x2;
p2--;
}
}
}
}