【牛客题霸每日一题】NC22 合并两个有序数组 C++ 题解
归并排序就是用的这样的思路,每次比较两个数组的第一个元素,并将较小的一个存入新数组,从原数组删除,然后继续比较两个数组的第一个元素,以此类推。
代码如下:
class Solution {
public:
void merge(int A[], int m, int B[], int n) {
vector<int> c;
int i = 0, j = 0;
while(i < m && j < n) {
if(A[i] < B[j]) {
c.push_back(A[i]);
i++;
} else {
c.push_back(B[j]);
j++;
}
}
while(i < m) {
c.push_back(A[i]);
i++;
}
while(j < n) {
c.push_back(B[j]);
j++;
}
for(int i = 0; i < n + m; i++) {
A[i] = c[i];
}
}
};
查看17道真题和解析