summaryrefslogtreecommitdiff
path: root/0088/main.c
diff options
context:
space:
mode:
authorMistivia <i@mistivia.com>2025-09-10 11:18:26 +0800
committerMistivia <i@mistivia.com>2025-09-10 11:18:26 +0800
commit71a08971feae0fb2cd166d888c01a518549ec7b2 (patch)
tree290ec4811f3e112a6083e307dfa8b2cda3966578 /0088/main.c
parentfa2f1e66d3d1e6dca086a6e8275ba25ded8b34b9 (diff)
solve 88
Diffstat (limited to '0088/main.c')
-rw-r--r--0088/main.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/0088/main.c b/0088/main.c
new file mode 100644
index 0000000..ab53d94
--- /dev/null
+++ b/0088/main.c
@@ -0,0 +1,39 @@
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n) {
+ int *buf = malloc(sizeof(int) * (m + n));
+ int p1 = 0, p2 = 0;
+ int i = 0;
+ while (p1 < m || p2 < n) {
+ if (p1 >= m) {
+ buf[i] = nums2[p2];
+ p2++;
+ } else if (p2 >= n) {
+ buf[i] = nums1[p1];
+ p1++;
+ } else {
+ if (nums1[p1] < nums2[p2]) {
+ buf[i] = nums1[p1];
+ p1++;
+ } else {
+ buf[i] = nums2[p2];
+ p2++;
+ }
+ }
+ i++;
+ }
+ memcpy(nums1, buf, sizeof(int) * (m + n));
+}
+
+int main() {
+ int arr1[] = {1,2,3,0,0,0};
+ int arr2[] = {2,5,6};
+ merge(arr1, 3, 3, arr2, 3, 3);
+ for (int i = 0; i < 6; i++) {
+ printf("%d ", arr1[i]);
+ }
+ printf("\n");
+ return 0;
+}