思路:逆序双指针
// @Title: 合并两个有序数组 (Merge Sorted Array)
// @Author: qisiii
// @Date: 2024-09-11 15:52:51
// @Runtime: 0 ms
// @Memory: 41.3 MB
// @comment: 逆序双指针
// @flag: GREEN
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
if (n == 0) {
return;
}
int result = m + n - 1;
int a1 = m - 1, a2 = n - 1;
while (result >= 0) {
if (a1 < 0) {
nums1[result--] = nums2[a2--];
} else if (a2 < 0) {
nums1[result--] = nums1[a1--];
} else if (nums1[a1] > nums2[a2]) {
nums1[result--] = nums1[a1--];
} else {
nums1[result--] = nums2[a2--];
}
}
}
}