978 最長湍流子陣列

2021-10-10 16:43:58 字數 720 閱讀 1717

求最值問題,不用輸出具體的結果,只需要輸出長度,那麼就可以使用動態規劃,確定了方法,就可以根據方法的模板來寫。

首先確定狀態,這裡的dp陣列為2行n列

dp[0][j]表示以第j個數字為結尾的,且當前為公升序列,也就是第j個數大於第j-1個數。

dp[1][j]表示以第j個數字為結尾的,且當前為降序列,也就是第j個數小於第j-1個數。

第一行代表狀態為公升,第二行代表狀態為減

那麼就有了狀態轉移方程:

如果當前狀態為公升,那麼dp[0][j]=dp[1][j-1]+1;

如果當前狀態為降,那麼dp[1][j]=dp[0][j-1]+1;

最終結果就是求dp中的最大值,這就遍歷了所有的情況

class

solution

else

if(arr[j]

>arr[j-1]

) res=

max(res,

max(dp[0]

[j],dp[1]

[j]));

}return res;}}

;

978 最長湍流子陣列

當 a 的子陣列 a i a i 1 a j 滿足下列條件時,我們稱其為湍流子陣列 若 i k j,當 k 為奇數時,a k a k 1 且當 k 為偶數時,a k a k 1 或 若 i k j,當 k 為偶數時,a k a k 1 且當 k 為奇數時,a k a k 1 也就是說,如果比較符號在...

978 最長湍流子陣列

當a的子陣列a i a i 1 a j 滿足下列條件時,我們稱其為湍流子陣列 也就是說,如果比較符號在子陣列中的每個相鄰元素對之間翻轉,則該子陣列是湍流子陣列。返回a的最大湍流子陣列的長度。示例 1 輸入 9,4,2,10,7,8,8,1,9 輸出 5 解釋 a 1 a 2 a 3 a 4 a 5 ...

Leetcode 978 最長湍流子陣列

當a的子陣列a i a i 1 a j 滿足下列條件時,我們稱其為湍流子陣列 也就是說,如果比較符號在子陣列的相鄰元素對之間反轉,則子陣列是湍流子陣列。返回a的最大湍流子陣列的長度。示例1 輸入 9,4,2,10,7,8,8,1,9 輸出 5 解釋 a 1 a 2 a 3 a 4 a 5 本題最容易...