LeetCode88合並兩個有序數組
阿新 • • 發佈:2018-10-12
ble strong col break bre return 細節 -a problem
未經博主同意,禁止瞎JB轉載。
LeetCode88合並兩個有序數組
https://leetcode-cn.com/problems/merge-sorted-array/description/
我的解法:
使用了python裏面的insert函數,而且每次插入一個數字都要移動該數字後面所有的數字,比較麻煩,一些細節容易出錯。
1 class Solution(object): 2 def merge(self, nums1, m, nums2, n): 3 """ 4 :type nums1: List[int] 5 :type m: int6 :type nums2: List[int] 7 :type n: int 8 :rtype: void Do not return anything, modify nums1 in-place instead. 9 """ 10 i = 0 11 j = 0 12 while i < m+n and j < m: 13 while nums2: 14 if nums1[i]>nums2[0]: 15 nums1.pop()16 nums1.insert(i,nums2[0]) 17 nums2.pop(0) 18 i = i + 1 19 else: 20 break 21 i = i + 1 22 j = j + 1 23 while nums2: 24 nums1.pop() 25 nums1.insert(i,nums2.pop(0))26 i = i + 1
別人做得就既簡單又暴力,既然前面位置不確定,那麽可以從後向前比較啊。。。厲害。
1 while m>0 and n >0: 2 if nums1[m-1] >= nums2[n-1]: 3 nums1[m+n-1] = nums1[m-1] 4 m = m -1 5 else : 6 nums1[m+n-1] = nums2[n-1] 7 n = n-1 8 if n > 0 : 9 nums1[:n] = nums2[:n]
LeetCode88合並兩個有序數組