Given two sorted integer arrays A and B, merge B into A as one sorted array.
Note:
You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements from B. The number of elements initialized in A and B are mand n respectively.
You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements from B. The number of elements initialized in A and B are mand n respectively.
Solution:
If we start adding the elements from the end to the beginning, once an element is inserted it does not have to be movedclass Solution:
# @param A a list of integers
# @param m an integer, length of A
# @param B a list of integers
# @param n an integer, length of B
# @return nothing
def merge(self, A, m, B, n):
indexA = m-1;
indexB = n-1;
while indexA >=0 and indexB>=0:
if A[indexA] > B[indexB]:
A[indexA+indexB+1] = A[indexA]
indexA -= 1
else:
A[indexA+indexB+1] = B[indexB]
indexB -= 1
while indexB >= 0:
A[indexB] = B[indexB]
indexB -= 1
class Solution(object):
ReplyDeletedef merge(self, A, m, B, n):
"""
:type nums1: List[int]
:type m: int
:type nums2: List[int]
:type n: int
:rtype: void Do not return anything, modify nums1 in-place instead.
"""
for i in range(n):
A[i+m] = B[i]
A.sort()