python-合并两个有序数组

2020-03-15  本文已影响0人  JerryLoveCoding

[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()
上一篇 下一篇

猜你喜欢

热点阅读