88. 合并两个有序数组

  1. 题目链接

  2. 解题思路:从后往前填数字即可

  3. 代码

    class Solution:
        def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:
            # 从后往前开始填充
            L = m - 1   # nums1[0, L]是nums1
            R = n - 1   
            cur = m + n - 1  # 现在需要填充的位置
            while L >= 0 and R >= 0:
                if nums1[L] >= nums2[R]:
                    nums1[cur] = nums1[L]
                    cur -= 1
                    L -= 1
                else:
                    nums1[cur] = nums2[R]
                    cur -= 1
                    R -= 1 
            # nums1没数了  把nums2剩下的拷贝过去即可
            while R >= 0:
                nums1[cur] = nums2[R]
                cur -= 1
                R -= 1
            # 这里机时nums1还有数,也不用管了,因为就是放在num1的
    
posted @ 2024-12-24 15:55  ouyangxx  阅读(19)  评论(0)    收藏  举报