方法1:
1 class Solution(object): 2 def merge(self, nums1, m, nums2, n): 3 """ 4 :type nums1: List[int] 5 :type m: int 6 :type nums2: List[int] 7 :type n: int 8 :rtype: void Do not return anything, modify nums1 in-place instead. 9 """ 10 while m>0 and n >0: 11 if nums1[m-1] >= nums2[n-1]: 12 nums1[m+n-1] = nums1[m-1] 13 m -= 1 14 else: 15 nums1[m+n-1] = nums2[n-1] 16 n -= 1 17 if n > 0: 18 nums1[:n] = nums2[:n]
同上:
1 class Solution: 2 def merge(self, nums1, m, nums2, n): 3 """ 4 :type nums1: List[int] 5 :type m: int 6 :type nums2: List[int] 7 :type n: int 8 :rtype: void Do not return anything, modify nums1 in-place instead. 9 """ 10 end = m + n -1 11 m -= 1 12 n -= 1 13 while end >= 0 and m >= 0 and n >= 0: 14 if nums1[m] > nums2[n]: 15 nums1[end] = nums1[m] 16 m -= 1 17 else: 18 nums1[end] = nums2[n] 19 n -= 1 20 end -= 1 21 while n >= 0: 22 nums1[end] = nums2[n] 23 n -= 1 24 end -= 1
方法3:
1 class Solution(object): 2 def merge(self, nums1, m, nums2, n): 3 """ 4 :type nums1: List[int] 5 :type m: int 6 :type nums2: List[int] 7 :type n: int 8 :rtype: void Do not return anything, modify nums1 in-place instead. 9 """ 10 nums1[m: m + n] = nums2[: n] 11 nums1.sort()