leetcode-978-Longest Turbulent Subarray
问题
A subarray A[i], A[i+1], ..., A[j]
of A
is said to be turbulent if and only if:
- For
i <= k < j
,A[k] > A[k+1]
whenk
is odd, andA[k] < A[k+1]
whenk
is even; - OR, for
i <= k < j
,A[k] > A[k+1]
whenk
is even, andA[k] < A[k+1]
whenk
is odd.
That is, the subarray is turbulent if the comparison sign flips between each adjacent pair of elements in the subarray.
Return the length of a maximum size turbulent subarray of A.
Example 1:
1 | Input: [9,4,2,10,7,8,8,1,9] |
Example 2:
1 | Input: [4,8,12,16] |
Example 3:
1 | Input: [100] |
Note:
1 <= A.length <= 40000
0 <= A[i] <= 10^9
分析
对于每一个 $A[i]$ ,inc
表示当前结尾是上升数字的有效序列的长度,dec
表示当前结尾是下降数字的有效序列的长度。
代码
1 | class Solution { |
Author: Hatton.Liu
Link: http://hattonl.github.io/2020/03/27/leetcode-978/
License: 知识共享署名-非商业性使用 4.0 国际许可协议