彬彬偷偷告诉了平行世界的其他杰哥们这个世界里的杰哥已经得到了阿伟,于是他们也来到了这个世界想要教阿伟登Dua郎,现在他们“成群杰队”地赶来了!

伟大的圣嘉然为了帮助阿伟逃跑,在杰哥们的前进路线上放了一个陷阱,杰哥们会依次掉进去。 现在有n个杰哥从A方向前来,按掉入陷阱的顺序编号为1~n。现在给出一串数,你的任务是判断他们全部走出来后的编号有没有可能是这串数。(例如,出来时5 4 1 2 3是不可能的,但5 4 3 2 1 是可能的。) (注意:为了方便起见,每个杰哥都以一个int值代替,并且由于杰哥体积庞大,陷阱可以完全看成一个栈的结构。有的杰哥可能在后面的杰哥进栈前就已经出栈)。

简而言之:有一个{1,2,3, …,N}的队列依次进栈,问出栈的顺序是否可能是题目给出的数列,如果可能,函数返回1,如果不可能,函数返回0.

注意,数组从1开始读入!

`#include <stdio.h>
#include <stdlib.h>

const int N = 100;

int check(int Jie[],int n);
int main()
{
    int n;  int Jie[N];
    scanf("%d",&n);
    for(int i=1;i<=n;++i)//注意,数组从1开始读入!
        scanf("%d",&Jie[i]);
    if(check(Jie,n))
        printf("Yes");
    else
        printf("No");
}
/* 请在这里填写答案 */`
//任意数A后面比A小的数都是按照降序排列的
int check(int Jie[],int n){
    int flag;
    if(n <= 0) return 0;
    for(int i = 0; i < n; i++){
        flag = 1;
        int j = i + 1;
        int a[n -j -2];
        int k = 0;
        for(; j < n; j++){
            if(Jie[i] > Jie[j])
                a[k++] = Jie[j];
        }
        for(int l = 0; l < k-1; l++){
            if(a[l] < a[l+1]){
                flag = 0;
                break;
            }
        }
        if(flag == 0)
            break;
    }
    if(flag == 1)
        return 1;
    if(flag == 0)
        return 0;
}```


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shimmer灬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值