题解 | #合并两个有序的数组#
合并两个有序的数组
https://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665
class Solution { public: void merge(int A[], int m, int B[], int n) { int* start_a = A; int* start_b = B; int* end_a = A + m - 1; while ((m != 0) && (n != 0)) { if (*start_a > *start_b) { for (int *cur = end_a; cur >= start_a; cur--) *(cur + 1) = *cur; *start_a = *start_b; start_b++; start_a++; end_a++; n--; } else { start_a++; m--; } } if (m == 0) { end_a++; for (int i = 0; i < n; i++) { *end_a = *start_b; end_a++; start_b++; } } } };