leetcode 845. 陣列中的最長山脈 做題筆記

a12355556發表於2020-10-25
class Solution {
    public int longestMountain(int[] A) {
 int start = -1;
        int ans = 0;

        for (int i = 1; i < A.length; i++) {
            if (A[i - 1] < A[i]) { // 總是在上升階段,確定山脈起點 start
                if (i == 1 || A[i - 2] >= A[i - 1]) {
                    start = i - 1;
                }
            } else if (A[i - 1] > A[i]) {
                if (start != -1) {
                    ans = Math.max(ans, i - start + 1); // 總是在下降階段,計算山脈長度
                }

            } else {
                start = -1; // 平緩期重置起點
            }
        }

        return ans;
    }
}

相關文章