讨论 / 贪心cpp
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;

}

查看更多回复
提交回复