不借助额外的数组
class Solution:
def merge(self, nums1, m, nums2, n):
while m>0 and n >0:
if nums1[m-1] >= nums2[n-1]:
nums1[m+n-1] = nums1[m-1]
m = m -1
else :
nums1[m+n-1] = nums2[n-1]
n = n-1
if n > 0 :
nums1[:n] = nums2[:n]
借助另外一个数组
class Solution:
def merge(self, nums1, m, nums2, n):
nums = [n for n in nums1]
i = 0
j = 0
p = 0
while i<m and j<n:
if nums[i]<=nums2[j]:
nums1[p] = nums[i]
i = i+1
else:
nums1[p] = nums2[j]
j = j+1
p = p+1
if j<n:
while j<n:
nums1[p] = nums2[j]
j = j+1
p = p+1
else:
while i<m:
nums1[p] = nums[i]
i= i+1
p = p+1