P1970 花匠
阿新 • • 發佈:2020-12-24
技術標籤:演算法pythonleetcode動態規劃資料結構
思路
思路其實很簡單,只要判斷有幾個“轉折點”,再加上2個端點就可以了。注意:1.與前面的花高度恰好相同的點並不是轉折點,所以要繼承前面的點的上升或下降趨勢;2.只有一株花的情況需要特判。
程式碼
#include<iostream> #include<cstdio> using namespace std; int n,ans,s,h[1000010]; int main() { cin>>n; for(int i=1;i<=n;i++) { scanf("%d",&h[i]); } if(h[1]>h[2]) s=1;//一開始特判。 for(int i=3;i<=n;i++) { if(h[i]==h[i-1]) continue;//相等的情況 。 if(h[i]<h[i-1]) { if(s==0) ans++,s=1; //現在下降剛才上升。 } else if(s==1) ans++,s=0;//現在上升剛才下降。 } cout<<ans+2;//輸出轉折點+2。 return 0; }
結束了………………