zoukankan      html  css  js  c++  java
  • 连续非递减子序列

    描述

     一个序列中的元素a1,a2,...,an,若满足a1<=a2<=...<=an,则称该序列为非递减序列。

    现给定一个序列,问该序列最少可以分割为多少个连续的非递减子序列。

    比如:

    1 2 5 3 4

    可以分割为两个非递减子序列1 2 5和3 4。

    而:

    5 4 3 2 1

    则只能分割为5个非递减子序列,每个子序列长度均为1。

    输入

    输入第一行为正整数n(n<=100),

    第二行有n个整数,为组成的序列元素。

    输出

    输出最少分割的连续非递减子序列个数。

    样例输入

    样例输出

     

    分析:找最少的连续非递减子序列,那么就是最多的递减子序列,所以,从前往后遍历只要递减,便加1,至少有一个

    代码如下:

    #include <iostream>
    using namespace std;
    int a[101];
    int main()
    {
        int n,m=1,j,i;
        cin>>n;
        for(i=0;i<n;i++)
        {
            cin>>a[i];
        }
        for(i=1;i<n;i++)
        {
            if(a[i]<a[i-1])
            {
                m++;
            }
        }
        cout<<m<<endl;
    }
  • 相关阅读:
    angularjs加载html
    git 使用
    图片压缩原理讲解很通透
    angularjs 实现多个图片上传及预览
    HTML 空格转义符的用法
    docker-volumes
    docker-管理数据
    docker-代理服务器
    docker-none
    docker-macvlan
  • 原文地址:https://www.cnblogs.com/andrew3/p/9607619.html
Copyright © 2011-2022 走看看