用C++实现:数列下标

牛客网算法周周练15 题号A

题目描述:

给出一个数列 A,求出一个数列B.
其中Bi   表示 数列A中 Ai 右边第一个比 Ai 大的数的下标(从1开始计数),没有找到这一个下标  Bi 就为0,输出数列B
输入描述:
第一行1个数字 n (n ≤ 10000)
第二行n个数字第 i 个数字为 Ai (0 ≤ A≤ 1000000000)
输出描述:
一共一行,第i个数和第i+1个数中间用空格隔开
样例:
输入:
6
3 2 6 1 1 2
输出:
3 3 0 6 6 0
代码如下:
 1 #include<iostream>
 2 using namespace std;
 3 int main(void)
 4 {
 5     int n;
 6     cin>>n;
 7     int a[10000];
 8     for(int i=0;i<n;i++)
 9     {
10         cin>>a[i];
11     }
12     for(int i=0;i<n;i++)
13     {
14         for(int j=i+1;j<=n;j++)
15         {
16             if(i==n-1)
17             {
18                 cout<<0;
19                 return 0;
20             }
21             else
22             {
23                 if(a[j]>a[i])
24                 {
25                     cout<<j+1<<" ";
26                     break;
27                 }
28                 else if(a[j]<=a[i]&&j==n-1)
29                 {
30                     cout<<0<<" ";
31                     break;
32                 }
33                 else
34                 {
35                     continue;
36                 }
37             }
38         }
39     }
40     return 0;
41 }

思路:遍历数组a,逐个进行大小比较,注意数组不要越界。当数据比较到最后一个数的时候,因为右边已经没有数了,所以也就不可能有数比其大,所以直接输出0即可(后面不要带空格)。

原文链接: https://www.cnblogs.com/guanrongda-KaguraSakura/p/13303117.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    用C++实现:数列下标

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/365842

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 下午4:22
下一篇 2023年3月2日 下午4:23

相关推荐