Let's call any (contiguous) subarray B (of A) a mountain if the following properties hold:
<li><code>B.length >= 3</code></li>
<li>There exists some <code>0 < i < B.length - 1</code> such that <code>B[0] < B[1] < ... B[i-1] < B[i] > B[i+1] > ... > B[B.length - 1]</code></li>
(Note that B could be any subarray of A, including the entire array A.)
Given an array A
of integers, return the length of the longest mountain.
Return 0
if there is no mountain.
Example 1:
Input: [2,1,4,7,3,2,5] Output: 5 Explanation: The largest mountain is [1,4,7,3,2] which has length 5.
Example 2:
Input: [2,2,2] Output: 0 Explanation: There is no mountain.
Note:
<li><code>0 <= A.length <= 10000</code></li>
<li><code>0 <= A[i] <= 10000</code></li>
Follow up:
<li>Can you solve it using only one pass?</li>
<li>Can you solve it in <code>O(1)</code> space?</li>