leetcode88. 合併兩個有序陣列
阿新 • • 發佈:2018-11-09
def merge(self, nums1, m, nums2, n): """ 關鍵點是nums1原陣列的長度是m+n,肯定要在nums1上操作效率高 如果正向比較的話移動次數很多,逆向的話不需要移動 注意m,n是以1開頭的 """ while m > 0 and n > 0: if nums1[m-1] >= nums2[n-1]: ''' 如果nums1的末尾元素大於等於nums2末尾元素,nums1的末尾元素替換0,指標m前進1 m-- ''' nums1[m + n - 1] = nums1[m - 1] m -= 1 else: ''' 如果nums1的末尾元素小於nums2末尾元素nums2指標指向的元素填補0,指標n-- ''' nums1[m + n - 1] = nums2[n-1] n -= 1 if n > 0 : nums1[0:n] = nums2[0:n] else: return