合并排序数组(简单版)
A = [1,2,3]m = 3B = [4,5]n = 2[1,2,3,4,5]A = [1,2,5]m = 3B = [3,4]n = 2[1,2,3,4,5]Last updated
A = [1,2,3]m = 3B = [4,5]n = 2[1,2,3,4,5]A = [1,2,5]m = 3B = [3,4]n = 2[1,2,3,4,5]Last updated
class Solution:
"""
@param: A: sorted integer array A which has m elements, but size of A is m+n
@param: m: An integer
@param: B: sorted integer array B which has n elements
@param: n: An integer
@return: nothing
"""
def mergeSortedArray(self, A, m, B, n):
# write your code here
# 双指针,从A尾部开始填充,想着耗尽数组即可,所以while比的总是两个数组尺寸,看耗尽没有。
p,q = m-1,n-1
cur = m+n-1
while cur > -1:
if p == -1:
A[cur] = B[q]
q -= 1
elif q == -1:
A[cur] = A[p]
p -= 1
elif A[p] > B[q]:
A[cur] = A[p]
p -= 1
else:
A[cur] = B[q]
q -= 1
cur -= 1