C语言每日一题

简介: C语言每日一题

今天分享的是一道牛客网上面的题目,链接在下面

有序序列合并

这道题做法有很多,最简单的是合并一起,然后用排序就行了,今天将一个最高效的办法,思路是两个数组第一项进行比较,小的先输出,输出的那个数组的下标往后移动,然后再进行比较,如果是另一个数组小,那先输出那个,然后那个数组下标往后移动,依次这样,就能把两个数组合并进行输出了。

#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;
}

这就是今天代码分享,主要是觉得这个思路还行,就分享出来了,文章质量不是特别好,谢谢大家!!!

相关文章
|
8月前
|
C语言
C语言刷题指南(二)
C语言刷题指南(二)
51 0
|
8月前
|
编译器 C语言
C语言刷题(1)
C语言刷题(1)
56 0
|
10月前
|
存储 编译器 C语言
|
10月前
|
人工智能 编译器 C语言
C语言——每日一题
C语言——每日一题
|
10月前
|
编译器 测试技术 C语言
|
7月前
|
C语言 数据安全/隐私保护
C语言刷题
C语言刷题
44 1
|
6月前
|
存储 算法 测试技术
C语言 每日一题 11.9 day15
C语言 每日一题 11.9 day15
43 0
|
6月前
|
测试技术 C语言
C语言 每日一题 Day10
C语言 每日一题 Day10
51 0
|
6月前
|
C语言
C语言 每日一题 day9
C语言 每日一题 day9
28 0
|
8月前
|
算法 C语言
C语言刷题指南(四)
C语言刷题指南(四)
44 0