541h541h 2014-08-06 08:50:01
点我顶贴
收藏
删除
//寻找拐角点,即改变大于和小于转变的点
#include<cstdio>
#include<iostream>
using namespace std;
int n,h[100001],pd=0,num=1;//头一定是拐角点,num记拐角点数
int main()
{
//freopen("1.in","r",stdin);
//freopen("1t.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&h[i]);
}
if(n<=2)
{
printf("%d",n);
return 0;
}
if(h[1]>h[2])
pd=0;
else
pd=1;
for(int i=2;i<n;i++)
{
if(h[i-1]>=h[i]&&pd==0)
{
if(h[i]<h[i+1])
{
num++;
pd=1;
}
}
if(h[i-1]<=h[i]&&pd==1)
{
if(h[i]>h[i+1])
{
num++;
pd=0;
}
}
}
num++;//加末尾,末尾一定是
printf("%d",num);
return 0;
}