编辑代码

#include <stdio.h>
#include "windows.h"

// 数组和并
// 从尾巴开始合并
void merge(int *nums1, int nums1Size, int m, int *nums2, int nums2Size, int n) {
    int i = n - 1, j = m - 1;
    for (int k = nums1Size - 1; k >= 0; --k) {
        if (j < 0) {
            *(nums1 + k) = *(nums2 + i--);
        } else if (i < 0) {
            *(nums1 + k) = *(nums1 + j--);
        } else {
            if (*(nums1 + j) > *(nums2 + i)) {
                *(nums1 + k) = *(nums1 + j--);
            } else {
                *(nums1 + k) = *(nums2 + i--);
            }
        }

    }
}
int main () {
    SetConsoleOutputCP(65001);
    int nums1[] = {1, 2, 3, 0, 0, 0};
    int nums2[] = {2, 5, 6};
    int m = 3, n = 3;
}