zoukankan      html  css  js  c++  java
  • 0941. Valid Mountain Array (E)

    Valid Mountain Array (E)

    题目

    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] < A[i]
      • arr[i] > arr[i + 1] > ... > arr[arr.length - 1]

    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

    题意

    判断数组是否满足前半段单调递增,后半段单调递减。

    思路

    从前往后找递增结束点,从后往前找递增结束点,判断是否重合且满足峰顶定义。


    代码实现

    Java

    class Solution {
        public boolean validMountainArray(int[] arr) {
            if (arr.length < 3) {
                return false;
            }
    
            int left = 1, right = arr.length - 2;
    
            while (left < arr.length - 1 && arr[left] > arr[left - 1] && arr[left + 1] > arr[left]) {
                left++;
            }
            while (right > 1 && arr[right] > arr[right + 1] && arr[right - 1] > arr[right]) {
                right--;
            }
    
            return left == right && arr[left] > arr[left - 1] && arr[left] > arr[left + 1];
        }
    }
    
  • 相关阅读:
    css水平垂直居中
    JavaScript提供了哪几种“异步模式”?
    sort()
    后端开发中,可以在Cache-Control设置的常用指令
    纯函数
    react和vue
    npm(classnames) 更灵活使用类名
    shell知多少?
    常见的HTTP状态码
    axios
  • 原文地址:https://www.cnblogs.com/mapoos/p/14116051.html
Copyright © 2011-2022 走看看