难度简单53
给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B。 编写一个方法,将 B 合并入 A 并排序。
初始化 A 和 B 的元素数量分别为 m 和 n。
示例:
输入: A = [1,2,3,0,0,0], m = 3 B = [2,5,6], n = 3 输出: [1,2,2,3,5,6]
class Solution:
def merge(self, A: List[int], m: int, B: List[int], n: int) -> None:
"""
Do not return anything, modify A in-place instead.
"""
idx1 = m-1
idx2 = n-1
cur = m+n-1
while idx1 >-1 and idx2 >-1:
if A[idx1]<B[idx2]:
A[cur] = B[idx2]
cur -= 1
idx2 -= 1
else:
A[cur]=A[idx1]
cur-=1
idx1-=1
if idx2!=-1:
A[:idx2+1] = B[:idx2+1]
return A
class Solution:
def merge(self, A: List[int], m: int, B: List[int], n: int) -> None:
"""
Do not return anything, modify A in-place instead.
"""
A[m:] = B
A.sort()