题解 | 非递减序列

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        List<Integer> list = new ArrayList<>();
        while (in.hasNext()) { // 注意 while 处理多个 case
            int num = in.nextInt();
            list.add(num);
        }   
        int ct = process(list);
        System.out.println(ct);
        
    }


    private static int process(List<Integer> list) {
       int count = 1;
       int line = list.get(0);
       for (int i=1; i<list.size()-1; i++) {
        int a = list.get(i-1); // 找到前一个数
        int b = list.get(i); // 找到当前数
        if (a <= b) {
            line = a; // 如果正常 记录底线
        }  else {
            if (b < line || count == 0) { // 如果当前数 比底线还低 没法只改变当前数 因为前一数 a 也比它大
                return 0;
            } else {
                count--; // 改变次数减 1
            }
        }
       }
        return 1;
    }
}

全部评论

相关推荐

代码飞升:简历差不多情况下你的学历已经加分了,海投就行,加油,不要追求尽善尽美
点赞 评论 收藏
分享
xwqlikepsl:感觉很厉害啊,慢慢找
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务