1. 程式人生 > >【python3】leetcode 88. Merge Sorted Array (easy)

【python3】leetcode 88. Merge Sorted Array (easy)

 88. Merge Sorted Array (easy)

Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.

Note:

  • The number of elements initialized in nums1 and nums2 are m and n respectively.
  • You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2.

Example:

Input:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6],       n = 3

Output: [1,2,2,3,5,6]

1 記錄一個賊蠢的辦法

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.
        """
        nums1[m:(m+n)] = nums2
        nums = nums1[0:(m+n)]
        nums.sort()
        nums1[0:(m+n)] = nums

Runtime: 40 ms, faster than 70.04% of Python3 

1.2 蠢辦法的稍微改進

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.
        """
        nums1[m:(m+n)] = nums2
        nums1[0:(m+n)] =  sorted(nums1[0:(m+n)])

Runtime: 36 ms, faster than 99.90% of Python3

注意1 切片返回new obj,

      2 list.sort() 返回none