有多种方案,找拐点数目最简单O(n)
注意此题有相邻点价值一样,代码改变一点
1 #include <cstdio> 2 #include<iostream> 3 #include<cstdlib> 4 #include<algorithm> 5 int s,n,k,i,a,b; 6 int main() { 7 while(~scanf("%d%d",&n,&a)) { 8 for(i=1; i<n; ++i) { 9 scanf("%d",&b); 10 if(b>a&&k!=1)k=1,s++; 11 if(b<a&&k!=2)k=2,s++; 12 a=b; 13 } 14 printf("%d ",s+1); 15 } 16 }