LeetCode--088--合并两个有序数组

 

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

 

posted @ 2018-09-02 15:54  Assange  阅读(134)  评论(0编辑  收藏  举报