1. 程式人生 > >LeetCode--088--合並兩個有序數組

LeetCode--088--合並兩個有序數組

void self int pre 有序 not col leetcode --

方法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()

LeetCode--088--合並兩個有序數組