""" 合并两个有序数组 """ from typing import List 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. 先填充后面的,再填充前面的 """ if not nums2: return len1 = m - 1 len2 = n - 1 k = m + n - 1 while len1 >= 0 and len2 >= 0: if nums1[len1] > nums2[len2]: nums1[k] = nums1[len1] len1 -= 1 else: nums1[k] = nums2[len2] len2 -= 1 k -= 1 if len2 >= 0: # 切片赋值,切片是不包含尾部的 nums1[:len2 + 1] = nums2[:len2 + 1] return nums1 if __name__ == '__main__': Solution().merge([1, 2, 3, 0, 0, 0], 3, [2, 5, 6], 3)