首页 > 编程语言 > 详细

leetcode-python-合并两个有序数组

时间:2021-06-06 16:45:48      阅读:15      评论:0      收藏:0      [点我收藏+]

看似简单,实际上想了挺久的

1)内置api方法

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.
        """
        while nums1 and nums1[-1] == 0:
            if len(nums1) == m:
                break   
            del nums1[-1]
        nums1 += nums2
        nums1.sort()

2)双指针,哪个小输入哪个,再替换Nums1

temp = []
        p1 = 0
        p2 = 0
        while(p1 < m and p2 < n):
            if (nums1[p1] <= nums2[p2]):
                temp.append(nums1[p1])
                p1 += 1
            else:
                temp.append(nums2[p2])
                p2 += 1
        
        while(p1 < m):
            temp.append(nums1[p1])
            p1 += 1
        while(p2 < n):
            temp.append(nums2[p2])
            p2 += 1
        
        for i in range(0, m + n ):
            nums1[i] = temp[i]

3)从后往前

leetcode-python-合并两个有序数组

原文:https://www.cnblogs.com/cbachen/p/14855543.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!