[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()
网友评论