leetcode 978 最長湍流子陣列

2021-09-25 08:43:46 字數 1362 閱讀 8398

陣列

dp

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])
示例 2:

輸入:[4,8,12,16]輸出:2
示例 3:

輸入:[100]輸出:1
用時: 100ms

複雜度:o(n)

遍歷字串(從索引1開始),如果該元素值不等於前一元素值,繼續;

對flag賦初值(true/false)

向後繼續掃瞄(每次flag取反),如果後面元素和前一元素值大小關係判定滿足flag,計數器計數;否則與之前計數器值比較,去較大值。計數器復位成1;

重新向後掃瞄。

遍歷陣列結束,返回計數器值。

warning:注意判定條件

1

class

solution

18if(count >ans)

1922}23

else

2428}29

return

ans;30}

31 };

用時: 100ms

複雜度:o(n)

1

class

solution

1920

return

ans; 21}

22 };

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 本題最容易...

leetcode978 最長湍流子陣列

當 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 也就是說,如果比較符號在...

leetcode 978 最長湍流子陣列

關注相鄰兩個數字之間的符號就可以了。如果用 0,1,2代表比較符的話 分別對應 這些交替的比較符會形成若干個連續的塊 我們知道何時乙個塊會結束 當已經到符號串行末尾的時候或者當序列元素不再交替的時候。int maxturbulencesize int a,int asize int flag 0 0...