您好,登錄后才能下訂單哦!
這篇文章主要介紹leetcode如何實現最長湍流子數組,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
一、題目內容
當 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如何實現最長湍流子數組”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。