题解 | #合并两个有序数组#
合并两个有序的数组
https://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665?tpId=295&tqId=658&ru=%2Fpractice%2F11ae12e8c6fe48f883cad618c2e81475&qru=%2Fta%2Fformat-top101%2Fquestion-ranking&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26tab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D295
class Solution {
public:
void merge(int A[], int m, int B[], int n) {
if (m == 0) {
std::copy(B, B + n, A);
return ;
} else if (n ==0) {
return ;
}
std::copy(A, A + m, A + n);
int a = n, b = 0, fin = 0;
while (b < n && a < m + n) {
if (A[a] < B[b]) {
A[fin] = A[a];
++a;
} else {
A[fin] = B[b];
++b;
}
++fin;
}
while (b < n) {
A[fin] = B[b];
++b;
++fin;
}
while (a < m + n) {
A[fin] = A[a];
++a;
++fin;
}
}
};

查看10道真题和解析