python合併兩個有序數組

class Solution(): 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. """ index = m + n - 1 # 合併之後的nums1最大的下標 # 個數減去1得到下標 m -= 1 n -= 1 while m >= 0 and n >= 0: # 如果nums1倒數最大 大於nums2倒數最大 # 第一輪nums1的5和nums2的6 # 第二輪nums1的5和nums2的4比較 if nums1[m] > nums2[n]: # nums1的5放到 nums1[index] = nums1[m] #比nums1較下一個 m -= 1 else: # 第一輪的nums2的6放到nums1的最後 nums1[index] = nums2[n] # 比較nums2的下一個 n -= 1 # 最大索引減一放剩下數組裏的大數 index -= 1 if m < 0: #說明nums1的數都大於nums2 nums1[:n + 1] = nums2[:n + 1] if __name__ == '__main__': nums1 = [1, 3, 4, 5, 0, 0, 0] nums2 = [2, 4, 6] s = Solution() s.merge(nums1, 4, nums2, 3) print nums1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章