The Valid Mountain Array Problem using Java

Introducing the problem

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]
As found on Leetcode.com

The constraints

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 

How to solve this in Java

class Solution { // Input array of integers public boolean validMountainArray(int[] A) { // if we have less than 3 integers, it will always be false if (A.length<3) return false; // set our counter variables int len = A.length; int i = 0; // walk up the array until it decreases while (i+1 < len && A[i]<A[i+1]) // increment our counter i++; // if the start or end characters are the same as our counter // then the mountain didn't decrease if (i==0 || i==len-1) return false; // walk the array while it decreases // starting at the last counter index while (i+1 < len && A[i]>A[i+1]) i++; // return a boolean if the counter is the same as the length return i == len-1; } }
Code language: Java (java)
Tags:
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments