c++
class Solution {
public :
void merge(vector <int > & nums1, int m, vector <int > & nums2, int n) {
if (nums2.empty())
return ;
while (m > 0 && n > 0 ) {
if (nums1[m - 1 ] > nums2[n - 1 ]) {
nums1[m + n - 1 ] = nums1[m - 1 ];
m--;
}
else {
nums1[m + n - 1 ] = nums2[n - 1 ];
n--;
}
}
while (m == 0 && n > 0 ) {
nums1[n - 1 ] = nums2[n - 1 ];
n--;
}
}
};
python
class Solution (object) :
def merge (self, nums1, m, nums2, n) :
"""
:type nums1: List[int]
:type m: int
:type nums2: List[int]
:type n: int
:rtype: void Do not return anything, modify nums1 in-place instead.
"""
if not nums2:
return
while m>0 and n>0 :
if nums1[m-1 ] > nums2[n-1 ]:
nums1[m+n-1 ] = nums1[m-1 ]
m -= 1
else :
nums1[m+n-1 ] = nums2[n-1 ]
n -= 1
while m==0 and n>0 :
nums1[n-1 ] = nums2[n-1 ]
n -= 1