这组数据试试:
```
6
1 1 2 2 1 1
```
正确答案:3
你的程序:2
by Hope2075 @ 2018-10-19 16:28:28
@[ALGOBAKE__YE](/space/show?uid=29691)
我还没学过但是我有另一个对的
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,h[1000005],ans=1,c;
cin>>n;for(int i=1;i<=n;i++) cin>>h[i];
if(h[2]>=h[1]) c=1;
for(int i=1;i<=n;i++)
{
if(c==0&&i==n) {ans++;break;}
if(c==1) if(h[i+1]<h[i]){ans++;c=0;continue;}
if(c==0) if(h[i+1]>h[i]) {ans++;c=1;continue;}
}
cout<<ans;
}
额你整理一下吖
by 1111imt @ 2019-08-06 21:07:07
你那种贪心写法我也试过一直过不了(也80)。换一个思路想想 ,这题其实满足两个条件其中一个就可以了。第一个必定选第一个不选的话会少一种 把升的标为1降的标为0。找到101这种有多少个就可以了。还有一个条件是上面我说的一样道理只不过反过来求010就可以了。
by 小小怪下士___ @ 2019-08-08 15:01:09
等于0的情况也要考虑到(卡我很久这个)
by 小小怪下士___ @ 2019-08-08 15:01:36