* 合并两个有序数组
思路一:合并之后再排序,时间O((m+n)log(m+n))
思路二:双指针 class Solution: def merge(self, nums1: List[int], m: int, nums2: List[
int], n: int) -> None: """ Do not return anything, modify nums1 in-place
instead. """ p1 = m - 1 p2 = n - 1 p3 = m + n - 1 while p1 >= 0 and p2 >= 0: if
nums1[p1] < nums2[p2]: nums1[p3] = nums2[p2] p2 -= 1 else: nums1[p3] = nums1[p1]
p1-= 1 p3 -= 1 nums1[0:(p2+1)] = nums2[0:(p2+1)] return nums1 # class
Solution(object): # 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[:] =
sorted(nums1[:m] + nums2)
今日推荐