leetcode/88.c
2024-09-08 14:39:20 +08:00

42 lines
760 B
C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void merge(int *nums1, int nums1Size, int m, int *nums2, int nums2Size, int n) {
int *base = malloc(sizeof(int) * (m + n));
int idx1 = 0;
int idx2 = 0;
int idx = 0;
while (idx1 < m && idx2 < n) {
if (nums1[idx1] < nums2[idx2])
base[idx++] = nums1[idx1++];
else
base[idx++] = nums2[idx2++];
}
for (int i = idx1; i < m; i++)
base[idx++] = nums1[i];
for (int i = idx2; i < n; i++)
base[idx++] = nums2[i];
memcpy(nums1, base, nums1Size * sizeof(int));
free(base);
}
int main() {
int nums1[1] = {1};
int nums2[0] = {};
merge(nums1, 1, 1, nums2, 0, 0);
for (int i = 0; i < 1; i++)
printf("%d ", nums1[i]);
printf("\n");
return 0;
}