leetcode 376. Wiggle Subsequence | 376. 摆动序列(动态规划)
生活随笔
收集整理的這篇文章主要介紹了
leetcode 376. Wiggle Subsequence | 376. 摆动序列(动态规划)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
https://leetcode.com/problems/wiggle-subsequence/
題解
刷題大概確實是有效果的吧…
印象中,這算是今日第二道,全局第三道沒看答案寫出來的 dp …
找到 dp 的套路,總會有讓 dp 不再成為玄學的那一天,指日可待…
DP 思路
也不全是自己想的思路。這道題與 leetcode 300. Longest Increasing Subsequence | 300. 最長遞增子序列(動態規劃)非常類似,思路很大程度上受到了這道題的啟發,也就是在計算連續子序列的問題時,dp 用來記錄強制包含當前元素時的最長子序列長度。
與 第 300 題 “最長遞增子序列” 不同的是,本題要求子序列 增減性不斷交替,所以還需要考慮 前一個序列的末尾元素的增減性。為此,我們創建一個 incr[] 數組,incr[j] 用來記錄當前 j 位置最長子序列的末尾元素的增減性,以便和后面 j 位置上的元素相呼應。
順便貼上幾乎看不懂的草稿,記錄一下“嘗試”的過程(對于 dp 問題,可以先用前幾個數嘗試一下,找感覺)
總結
以上是生活随笔為你收集整理的leetcode 376. Wiggle Subsequence | 376. 摆动序列(动态规划)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode 375. Guess
- 下一篇: leetcode 377. Combin