合并两个排序的整数数组A和B变成一个新的数组。
给出A=[1,2,3,4],B=[2,4,5,6],返回 [1,2,2,3,4,4,5,6]
你能否优化你的算法,如果其中一个数组很大而另一个数组很小?
双指针法,从后往前依次往新数组中添加两个指针指向的较大的数字。
class Solution { /** * @param A and B: sorted integer array A and B. * @return: A new sorted integer array */ public int[] mergeSortedArray(int[] A, int[] B) { int i = A.length - 1; int j=B.length - 1; int index = i + j + 1; int[] result = new int[index + 1]; while (i >= 0 && j >= 0) { if (A[i] > B[j]) { result[index--] = A[i--]; } else { result[index--] = B[j--]; } } while (i >= 0) { result[index--] = A[i--]; } while (j >= 0) { result[index--] = B[j--]; } return result; } }Last Update 2016.8.15