diff --git a/MergeArray b/MergeArray new file mode 100644 index 00000000..6988efac --- /dev/null +++ b/MergeArray @@ -0,0 +1,27 @@ +// TC - O(m + n) +// SC - O(1) + +// We use two pointers to solve this probelm +class MergeArray { + public void merge(int[] nums1, int m, int[] nums2, int n) { + int p1 = m-1, p2 = n-1; + int index = m+n-1; + + while(p1 >= 0 && p2 >=0){ + if(nums2[p2] > nums1[p1]){ + nums1[index] = nums2[p2]; + p2--; + }else{ + nums1[index] = nums1[p1]; + p1--; + } + index--; + } + + while(p2 >= 0){ + nums1[index] = nums2[p2]; + p2--; + index--; + } + } +}