合并两个有序数组 (Merge Sorted Array)

 

思路:逆序双指针

// @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--];
            }
        }
    }
}
Licensed under CC BY-NC-SA 4.0
最后更新于 2024-10-18