Wednesday, October 28, 2020

LeetCode [941] Valid Mountain Array

 941. Valid Mountain Array

Easy

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

Recall that A is a mountain array if and only if:

  • A.length >= 3
  • There exists some i with 0 < i < A.length - 1 such that:
    • A[0] < A[1] < ... A[i-1] < A[i]
    • A[i] > A[i+1] > ... > A[A.length - 1]

 

Example 1:

Input: [2,1]
Output: false

Example 2:

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

Example 3:

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

 

Note:

  1. 0 <= A.length <= 10000
  2. 0 <= A[i] <= 10000 
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Solution {
    public boolean validMountainArray(int[] A) {
        int n = A.length;
        if(n<3 || A[0]>=A[1]) return false;
        int i = 1;
        boolean foundMountain = false;
        while(i<n){
            if(A[i]==A[i-1]) return false;
            if(!foundMountain){
                if(A[i]>A[i-1]){
                    i++;
                }else{//A[i]<A[i-1], A[i-1] is mountain
                    foundMountain = true;
                    i++;
                }
            }else{
                if(A[i]<A[i-1]){
                    i++;
                }else{
                    return false;
                }
            }
        }
        return true;
    }
}

No comments:

Post a Comment