題目
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 m andn respectively.
從後往前歸並就可以不用額外空間了。
代碼
public class MergeSortedArray { public void merge(int A[], int m, int B[], int n) { int i = m - 1; int j = n - 1; while (i >= 0 && j >= 0) { if (A[i] > B[j]) { A[i + j + 1] = A[i]; --i; } else { A[i + j + 1] = B[j]; --j; } } while (j >= 0) { A[j] = B[j]; --j; } } }