AlgoMaster Logo

Merge Sorted Array

nums1=[1, 2, 3, 0, 0, 0],nums2=[2, 5, 6],m=3,n=3
1public void merge(int[] nums1, int m, int[] nums2, int n) {
2    // Initialize pointers
3    int p1 = m - 1;
4    int p2 = n - 1;
5    int p = m + n - 1;
6
7    // Merge from right to left
8    while (p1 >= 0 && p2 >= 0) {
9        if (nums1[p1] > nums2[p2]) {
10            nums1[p] = nums1[p1];
11            p1--;
12        } else {
13            nums1[p] = nums2[p2];
14            p2--;
15        }
16        p--;
17    }
18
19    // Copy remaining elements from nums2
20    while (p2 >= 0) {
21        nums1[p--] = nums2[p2--];
22    }
23}
0 / 18
nums1123000nums2256