# 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]`

## 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:**

`0 <= A.length <= 10000`

`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;
}
}
```