排序子序列

牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数组分为几段排序子序列. 如样例所示,牛牛可以把数组A划分为[1,2,3]和[2,2,1]两个排序子序列,至少需要划分为2个排序子序列,所以输出2 输入描述: 输入的第一行为一个正整数n(1 ≤ n ≤ 10^5)

第二行包括n个整数A_i(1 ≤ A_i ≤ 10^9),表示数组A的每个数字。

输出描述: 输出一个整数表示牛牛可以将A最少划分为多少段排序子序列

输入例子: 6 1 2 3 2 2 1

输出例子: 2


AC代码:

/*
 * flag = 0 开始
 * flag = 1 严格递增(即不包含相等的情况)
 * flag = 2 严格递减(即不包含相等的情况)
 * 相等的时候我们什么也不做,最后对于我们结果加1即可
 */

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner in = new Scanner(System.in);
        int N = in.nextInt();
        int flag = 0;
        int res = 0;
        int last = in.nextInt();
        for(int i = 1 ; i < N ; i++){
            int now = in.nextInt();
            if (flag == 0){
                if ( now > last){
                    flag = 1;
                }else if(now < last){
                    flag = 2;
                }
            }else if( flag == 1){
                if ( now < last){
                    flag = 0;
                    res++;
                }
            }else{
                if ( now > last){
                    flag = 0;
                    res++;
                }
            }
            last = now;
        }
        //res++;
        System.out.println(res);

        in.close();
    }

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 算法训练 6-1 递归求二项式系数值

    样例输入 一个满足题目要求的输入范例。 3 10 样例输出 与上面的样例输入对应的输出。 120 数据规模和约定   输入数据...

    AI那点小事
  • 1013. 数素数 (20)

    令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数。

    AI那点小事
  • 生理周期

    输入样例 0 0 0 0 0 0 0 100 5 20 34 325 4 5 6 7 283 102 23 320 203 ...

    AI那点小事
  • 从cpu消耗到定位代码的剖析过程(送自动化分析脚本)

    当我们在执行性能测试过程中,会发现服务端的cpu会飙高,可能刚入门的性能测试小伙伴会直接找开发去定位了,其实这个过程我们测试也可自行完成,接下来我将自己写一个实...

    cctester
  • hihoCoder #1015 : KMP算法【KMP裸题,板子】

    #1015 : KMP算法 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程...

    Angel_Kitty
  • 在bash中检测进程是否正在运行

    比如我们启动了一个这样的进程python -m SimpleHTTPServer 8000,我们想检测这个进程是否存在,可以这样。

    技术小黑屋
  • 【数据可视化专题】数据可视化专家的七个秘密

    秘密一: 现实中的数据往往很丑 大部分的数据可视化的教程, 都会让你轻松地从一个原始数据集开始。 无论你是学习基本的柱状图还是力导向的网络图, 你的数据都是干...

    小莹莹
  • C++版 - Leetcode 8: String to Integer (myAtoi,C库函数atoi模拟) (剑指offer 面试题49) 解题报告

    提交网址: https://leetcode.com/problems/string-to-integer-atoi/

    Enjoy233
  • CodeBlocks:静态链接下的c语言静态库

    静态链接 1.建立静态链接库 File→New→Project→Static library

    心跳包
  • BeanDefinitionParserDelegate 分析

    东营浪人

扫码关注云+社区

领取腾讯云代金券