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 and 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 m and n respectively.
初始化Index = m + n,从大到小开始merge。
public class Solution {
//Time: O(m + n) Space: O(1)
public void merge(int A[], int m, int B[], int n) {
int index = m + n;
while (m > 0 || n > 0) {
if (m == 0) {
A[--index] = B[--n];
} else if (n == 0) {
return;
} else {
if (A[m - 1] > B[n - 1]) {
A[--index] = A[--m];
} else {
A[--index] = B[--n];
}
}
}
}
}
No comments:
Post a Comment