C++乐乐的上升段
题目描述
输入n及n个正整数,输出上升段的数目。
输入
第一行只有一个正整数:n
第二行共有n个不超过10000的正整数,数与数之间用一个空格隔开
输出
只有一行且只有一个整数:按输入的顺序计算该序列上升段的数目
样例输入
5
534 657 435 556 587
样例输出
2
数据范围限制
30% 的数据: 1 <= n <= 1 000
70% 的数据: 1 <= n <= 100 000
100% 的数据: 1 <= n <= 1 000 000
提示
534 657 是1个上升段
435 556 587 是1个上升段
这一题上升段,对于会dp的同学肯定弱爆了,但是这一题可以不用dp
直接判断它和它前面的数的关系,在利用好标记就可以
代码:
#include<iostream>
using namespace std;
int n,g=1,a[1000001],ans;
bool f=0;
int main()
{
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
for(int i=1;i<=n;i++)
{
if(a[i]>a[i-1]) f=1;//判断上升,标记f
if(f==1&&a[i]<=a[i-1]) ans++,f=0;//判断f
}
cout<<ans;
return 0;
}