0088. Merge Sorted Array
Easy | Array + Two Pointers | 16ms (98.22%), 13.3 MB (94.73%)
Source: LeetCode - Merge Sorted Array GitHub: Solution / Performance
You are given two integer arrays nums1
and nums2
, sorted in non-decreasing order, and two integers m
and n
, representing the number of elements in nums1
and nums2
respectively.
Merge nums1
and nums2
into a single array sorted in non-decreasing order.
The final sorted array should not be returned by the function, but instead be stored inside the array nums1
. To accommodate this, nums1
has a length of m + n
, where the first m
elements denote the elements that should be merged and the last n
elements are set to 0
and should be ignored. nums2
has a length of n
.
Three-pointer is required for placing numbers reversely from the end of array1:
place-pointer: starting from the end, which value is
m + n - 1
.array1-pointer: starting from the last element in array 1.
array2-pointer: starting from the last element in array 2.
Note that since the above pointers move forward (index is decreasing in each iteration), if array2-pointer reaches the beginning p2 < 0
, we could return directly because array1 is already sorted correctly. On the other hand, we also need to check whether array1-pointer reaches the beginning by p1 >= 0
.
Last updated