有两个从小到大排序以后的数组A和B,其中A的末端有足够的缓冲空容纳B。请编写一个方法,将B合并入A并排序。 给定两个有序int数组A和B,A中的缓冲空用0填充,同时给定A和B的真实大小int n和int m,请返回合并后的数组 我的提交

-- coding:utf-8 --

class Merge: def mergeAB(self, A, B, n, m): # write code here nm = n + m - 1 a = n - 1 b = m - 1 while a >= 0 and b >= 0: if A[a] > B[b]: A[nm] = A[a] a -= 1 else: A[nm] = B[b] b -= 1 nm -= 1 if b >= 0: A[:b + 1] = B[:b + 1] return A 参考答案 import java.util.*;

public class Merge { public int[] mergeAB(int[] A, int[] B, int n, int m) { while (m != 0) { if (n == 0) { A[m - 1] = B[m - 1]; m--; } else { A[m + n - 1] = A[n - 1] > B[m - 1] ? A[--n] : B[--m]; } } return A; } }