Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) - A

本文解析了CodeForces竞赛中的一道A级题目,该题要求判断一个序列是否为单峰序列。提供了完整的Java代码实现,通过扫描输入序列并确定递增和平缓阶段来解决这一问题。

 

题目链接:http://codeforces.com/contest/831/problem/A

题意:给定一个序列,问你这个序列是否是单峰的。 定义单峰的序列为: (序列值的变化趋势)开始是递增的,然后是平缓的,最后是递减的。

对于开始(递增)和结尾(递减)的那部分可以不出现

思路:按照题目判即可。

import java.io.*;
import java.util.*;

public class Main {
    public static final int MAXN=100+24;
    public static int n;
    public static int[] val=new int[MAXN];
    public static void main(String[] args) {
        Scanner cin=new Scanner(System.in);
        PrintWriter out=new PrintWriter(System.out);
        n=cin.nextInt();
        for(int i=1;i<=n;i++){
            val[i]=cin.nextInt();
        }
        int up=n+1,down=0;
        for(int i=1;i<n;i++){
            if(val[i] >= val[i+1]){
                up=i; break;
            }
        }
        for(int i=n;i>1;i--){
            if(val[i] >= val[i-1]){
                down=i; break;
            }
        }
        boolean flag=true;
        for(int i=up;i<down;i++){
            if(val[i]!=val[i+1]){
                flag=false;
                break;
            }
        }
        out.println(flag?"YES\n":"NO\n");
        out.flush(); out.close(); cin.close();
    }
}

 

转载于:https://www.cnblogs.com/kirito520/p/7246903.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值