941. Valid Mountain Array


質問する


Given an array of integers arr, return true if and only if it is a valid mountain array.
与えられた配列がmountain配列であるかどうかを決定します.

Example 1:

Input: arr = [2,1]
Output: false

Example 2:

Input: arr = [3,5,5]
Output: false

Example 3:

Input: arr = [0,3,2,1]
Output: true

Constraints:

  • 1 <= arr.length <= 10^4
  • 0 <= arr[i] <= 10^4
  • Solution

  • 配列の長さがnullまたは3未満の場合、無条件はfalseである.
  • 要素iの値がi+1より小さい場合、上昇し続ける.
  • の複文を出て、iが0の場合、最初の値は最大の値であるため、falseは、iが最後の要素であってもfalseを返す.
  • 今回、i値がi+1値より大きい場合、ずっと下がります.
  • 最後に、iの値が最後の要素である場合、trueが返され、そうでない場合falseが返される.
  • class Solution {
        public boolean validMountainArray(int[] arr) {
            int i = 0;
            
            if (arr==null || arr.length < 3) return false;
            while (i+1 < arr.length && arr[i] < arr[i+1]){ i++; }
            if (i == 0 || i == arr.length-1) return false;
            while (i+1 < arr.length && arr[i] > arr[i+1]){ i++; }
            
            return i==arr.length-1;
        }
    }