美文网首页
python-合并两个有序数组

python-合并两个有序数组

作者: JerryLoveCoding | 来源:发表于2020-03-15 19:44 被阅读0次

    [Leetcode]给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 num1 成为一个有序数组。

    说明:
    初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。
    你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。

    第一种方法

    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.
            """
            count = 0     #nums2索引
            index = 0     #nums1索引
            while count<n:
                if nums1[index]>nums2[count]:
                    # nums2中元素插入nums1中有效部分(非0部分)
                    for i in range(m+count,index,-1):           
                        nums1[i] = nums1[i-1]
                    nums1[index] = nums2[count]
                    count += 1
                if index > m+count-1:              #nums2中元素插入nums1列表后面全0区域
                    nums1[index] = nums2[count]
                    count += 1
                index += 1
    

    第二种方法

    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.
            """
            j = 0
            for i in range(m, len(nums1)):
                nums1[i] = nums2[j]
                j += 1
            nums1 = nums1.sort()
    

    相关文章

      网友评论

          本文标题:python-合并两个有序数组

          本文链接:https://www.haomeiwen.com/subject/yiamehtx.html