Python 合并两个有序数组
- 正文
正文
题目说明如下:
这里我们直接让 nums1
的后 n
个数等于 nums2
数组,然后对 nums1
数组整体进行排序即可。
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."""nums1[m : m + n] = nums2nums1.sort()
这里提供另一种解法:
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."""for num2 in nums2:if m == 0:nums1.insert(0, num2)nums1.remove(0)if m == 1 and nums1[0] <= num2:nums1.insert(1, num2)nums1.remove(0)if m == 1 and nums1[0] > num2:nums1.insert(0, num2)nums1.remove(0)for i in range(1, m):if nums1[i - 1] <= num2 <= nums1[i]:nums1.insert(i, num2)nums1.remove(0)breakelif num2 < nums1[0]:nums1.insert(0, num2)nums1.remove(0)breakelif num2 > nums1[i] and i < m - 1:continueelse:print('m: ', m)nums1.insert(m, num2)nums1.remove(0)m = m + 1nums1.sort()
如果大家觉得有用,就请点个赞吧~