暴力解法
class Solution:
def merge(self, nums1, m, nums2, n):
nums1[m:]=nums2
return nums1.sort()
双指针
class Solution:
def merge(self, nums1, m, nums2, n):
sorted=[]
p1=0
p2=0
while p1<m or p2<n:
if p1==m:
sorted.append(nums2[p2])
p2+=1
elif p2==n:
sorted.append(nums1[p1])
p1+=1
elif nums1[p1]<nums2[p2]:
sorted.append(nums1[p1])
p1+=1
elif nums1[p1]>=nums2[p2]:
sorted.append(nums2[p2])
p2+=1
nums1[:]=sorted
return nums1
nums1 = [1,2,3,0,0,0]
m = 3
nums2 = [2,5,6]
n = 3
l=Solution().merge(nums1,m,nums2,n)
print(l)
还有一种是倒序双指针,空间复杂度是O(1).