leetcode:376. 擺動序列(dp)

題目:

在這裏插入圖片描述

分析:

受之前的影響,剛開始想偏了。
思考:刪除後,可能影響原有的升降序嗎?
在這裏插入圖片描述
更準確的說,如上圖所示,我們對元素的刪除會改變這個趨勢嗎?會使得升降增多嗎?顯然不會增多,只有變少的情況。

代碼1:爲什麼出錯,1 2 2 2 3當做了兩個

class Solution {
public:
    int wiggleMaxLength(vector<int>& n) {
         if(n.size()==1) return 1;
            if(n.size()==0) return 0;
 int a=0; 
 for(int i=2;i<n.size();i++)
 {
  if(n[i]>n[i-1] && !(n[i-1]>n[i-2]))
  {
   a++;
  }
  else if(n[i]<n[i-1] && !(n[i-1]<n[i-2]))
  {
   a++;
  }
 }
    a++;
    if(n[0]!=n[1]) a++;
 return a;
    }
};

大佬代碼思路改變:

 vector<int> n; 
 if(n.size()==1) return 1;
    if(n.size()==0) return 0;
 int a1=0;
 int a2=0;
 for(int i=1;i<n.size();i++)
 {
  if(n[i]>n[i-1]) a1=a2+1;
  if(n[i]<n[i-1]) a2=a1+1;
 }
 return max(a1,a2)+1;

結果:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章