目錄
一、題目內容
二、解題思路
三、**
當 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]。
也就是說,如果比較符號在子陣列中的每個相鄰元素對之間翻轉,則該子陣列是湍流子陣列。
返回 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
1 <= a.length <= 40000
0 <= a[i] <= 10^9
奇偶判斷,根據題目條件中的前後大小關係寫出**即可。
class solution:
def maxturbulencesize(self, arr: list) -> int:
ans = 0
for i in range(2):
count = 0
for j in range(len(arr) - 1):
if j % 2 == i:
if arr[j] > arr[j + 1]:
count += 1
else:
count = 0
else:
if arr[j] < arr[j + 1]:
count += 1
else:
count = 0
ans = max(ans, count)
return ans + 1
if __name__ == '__main__':
s = solution()
arr = [0,1,1,0,1,0,1,1,0,0]
ans = s.maxturbulencesize(arr)
print(ans)
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 本題最容易...
leetcode 978 最長湍流子陣列
陣列 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...
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 也就是說,如果比較符號在...