吴师兄学算法day06 双指针 88. 合并两个有序数组

发布时间 2024-01-12 10:28:08作者: o蹲蹲o

题目:88. 合并两个有序数组

易错点:

  • 注意 判断i合法,不可以写if nums[i] 会下标越界
  • 掌握好边界条件,num1[i] 和nums2[j]大于或者大于等于都可以。

代码示例:

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.
        """
        # 从尾部遍历
        i = m - 1
        j = n - 1
        cur = m + n - 1
        # 遍历哪个?遍历j. 
        # 因为要把j里面,也就是nums2的数据移动到num1中
        while j >=0:
            if i>=0 and nums1[i] >= nums2[j]:
                nums1[cur] = nums1[i]
                cur -= 1
                i -= 1
            else:
                nums1[cur] = nums2[j]
                cur -= 1
                j -= 1

扩展写法:

总结:

  • 加油干!!为了自由!!

参考:

文档:https://ahym1n4sq5.feishu.cn/docx/QmqGdGQiMoVm22xyz9fcZUcTnUe