Given two sorted integer arrays A and B, merge B into A as one sorted array.
Note:
class 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):
#merge sort, store into temp array. assign temp to A
tmp = [ 0 for i in range(m+n) ]
i=0;j=0;k=0
while i< m and j < n :
if A[i] <= B[j] :
tmp[k] = A[i]
i+=1
k+=1
else :
tmp[k] = B[j]
j+=1
k+=1
if i>=m :
while j<n:
tmp[k] = B[j]
j+=1
k+=1
else :
while i<m :
tmp[k] = A[i]
i+=1
k+=1
for i in range(m+n) :
A[i] = tmp[i]
return
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.
跟前面的Merge Sorted List其实没有本质区别。 左手是A,右手是B,每次拿出来一个,比大小。小的那个排进去,该数组再拿出一个,继续比。直到数组用完为止。用了一个temp array存放一下数据,如果不能用,应该也可以做出来。没有想的太复杂。