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()