941. Valid Mountain Array

inhalin·2021년 2월 23일
0

Leetcode Easy

목록 보기
9/14

문제

Given an array of integers arr, return true if and only if it is a valid mountain array.

주어진 배열이 mountain array인지 확인하라.

in/valid mountain array

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

  1. 배열의 길이가 null이거나 3보다 작으면 무조건 false이다.
  2. 요소 i번째 값이 i+1번째 값보다 작을동안 쭉 올라간다.
  3. 반복문을 빠져나왔는데 i가 0이면 첫번째가 제일 큰값이니까 false, i가 마지막 요소여도 false를 반환한다.
  4. 이번엔 i번째 값이 i+1번째 값보다 클동안 쭉내려간다.
  5. 마지막에 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;
    }
}

0개의 댓글