今天分享的是一道牛客网上面的题目,链接在下面
这道题做法有很多,最简单的是合并一起,然后用排序就行了,今天将一个最高效的办法,思路是两个数组第一项进行比较,小的先输出,输出的那个数组的下标往后移动,然后再进行比较,如果是另一个数组小,那先输出那个,然后那个数组下标往后移动,依次这样,就能把两个数组合并进行输出了。
#include<stdio.h> int main() { int arr1[1000]; int arr2[1000]; int n = 0; int m = 0; scanf("%d %d", &n, &m); int i = 0; for (i = 0; i < n; i++) { scanf("%d ", &arr1[i]); } for (i = 0; i < m; i++) { scanf("%d ", &arr2[i]); } int j = 0; i = 0; while (i < n && j < m) { if (arr1[i] > arr2[j]) { printf("%d ", arr2[j]); j++; } else { printf("%d ", arr1[i]); i++; } } if (i == n) { for (; j < m; j++) { printf("%d ", arr2[j]); } } else { for (; i < n; i++) { printf("%d ", arr1[i]); } } return 0; }
这就是今天代码分享,主要是觉得这个思路还行,就分享出来了,文章质量不是特别好,谢谢大家!!!