今天分享的是一道牛客网上面的题目,链接在下面
有序序列合并
这道题做法有很多,最简单的是合并一起,然后用排序就行了,今天将一个最高效的办法,思路是两个数组第一项进行比较,小的先输出,输出的那个数组的下标往后移动,然后再进行比较,如果是另一个数组小,那先输出那个,然后那个数组下标往后移动,依次这样,就能把两个数组合并进行输出了。文章来源:https://www.toymoban.com/news/detail-663478.html
#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;
}
这就是今天代码分享,主要是觉得这个思路还行,就分享出来了,文章质量不是特别好,谢谢大家!!!文章来源地址https://www.toymoban.com/news/detail-663478.html
到了这里,关于C语言每日一题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!