# 941. Valid Mountain Array 【雙指針】 簡單 給定一個整數數組 arr,如果它是有效的山脈數組就返回 true,否則返回 false。 讓我們回顧一下,如果 A 滿足下述條件,那麼它是一個山脈數組: ``` arr.length >= 3 在 0 < i < arr.length - 1 條件下,存在 i 使得: arr[0] < arr[1] < ... arr[i-1] < arr[i] arr[i] > arr[i+1] > ... > arr[arr.length - 1] ```  【思路】 1. 用left、right指針指向陣列的頭和尾 2. 處理left指針,如果右邊的值嚴格大於當前值,left往右移一個位直到不滿足條件。 3. 處理right指針,如果左邊的值嚴格小於當前值,right往左移一個位直到不滿足條件。 4. 最後判斷left和right指針是否會合,若是則表示當前值是頂峰,若不是,則表示不是頂峰。 ```java= class Solution { public boolean validMountainArray(int[] arr) { int n = arr.length; int left = 0, right = n-1; if (n<3) return false; while(left < right && arr[left+1] > arr[left]) left++; while(left < right && arr[right-1] > arr[right]) right--; return left == right && left > 0 && right < n-1; } } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up