Skip to main content
Back to problems
#941
Easy Algorithms

Valid mountain array

Array
35.0% acceptance
Feb 25, 2026
3131
208
Given an array of integers arr, return true if and only if it is a valid mountain array. Recall that arr is a mountain array if and only if: arr.length >= 3 There exists some i with 0 < i < arr.length - 1 such that: arr[0] < arr[1] < ... < arr[i - 1] < arr[i] arr[i] > arr[i + 1] > ... > arr[arr.length - 1]

Solution

Rust
Time O(n)
Space O(1)
LeetCode
solution.rs
impl Solution {
  pub fn valid_mountain_array(arr: Vec<i32>) -> bool {
    let n = arr.len();
    if n < 3 { return false; }
    let mut i = 0;
    while i + 1 < n && arr[i] < arr[i+1] { i += 1; }
    if i == 0 || i == n - 1 { return false; }
    while i + 1 < n && arr[i] > arr[i+1] { i += 1; }
    i == n - 1
  }
}