陣列
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:注意判定條件
1class
solution
18if(count >ans)
1922}23
else
2428}29
return
ans;30}
31 };
用時: 100ms複雜度:o(n)
1class
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...