Sorted Merge:给定两个已经排好序的数组A
和B
,将B
合并到A
中。
如果从数组头部开始合并,则需要开辟额外的空间,或者批量移动A
中的元素,所以应该从数组尾部合并,也就是从大到小合并。
class Solution {
public:
void merge(vector<int>& A, int m, vector<int>& B, int n) {
int lastA = m - 1, lastB = n - 1, curr = m + n - 1;
while(lastB >= 0){
if(lastA >= 0 && A[lastA] > B[lastB]){
A[curr] = A[lastA];
lastA--;
}
else{
A[curr] = B[lastB];
lastB--;
}
curr--;
}
}
};