LeetCode〜941効果的な山々配列

941効果的な山の配列

整数の配列を考えるとA、それが有効な山脈の配列が返されている場合は、trueそれ以外の場合は、false

私たちは、以下の条件を満たしている場合、それは山の配列であることを思い出してみましょう:

A.length >= 3
在 0 < i < A.length - 1 条件下,存在 i 使得:
A[0] < A[1] < ... A[i-1] < A[i]
A[i] > A[i+1] > ... > A[B.length - 1]

例:

输入:[2,1]
输出:false

输入:[3,5,5]
输出:false

输入:[0,3,2,1]
输出:true

プロンプト

0 <= A.length <= 10000
0 <= A[i] <= 10000

個々の分析的思考

class Solution {
    public boolean validMountainArray(int[] A) {
        // 根据条件可以淘汰为空或者长度小于3的数组
        if(A != null && A.length >= 3){
            // 定义一个指针变量
            int index = 1;
            
            // 循环判断当前元素是否大于前一位元素(山峰左侧,上坡)
            while (index < A.length && A[index] > A[index-1]){
                // 符合条件指针后移继续判断
                index++;
            }
            
            // 判断指针是否到达末位或着前面元素大于当前元素
            if (index >= A.length || index == 1){
                // 不符合山峰形状,返回false
                return false;
            }
            
            // 循环判断剩余元素是否小于前一位元素(山峰右侧,下坡)
            while (index < A.length && A[index] < A[index-1]){
                // 符合条件指针后移继续判断
                index++;
            }
            
            // 判断是否完成遍历
            if (index == A.length){
                // 符合山峰形状,返回true
                return true;
            }
        }
        return false;
    }
}

結果を発表

出典:滞在ボタン(LeetCode)
リンク:https://leetcode-cn.com/problems/valid-parentheses

おすすめ

転載: www.cnblogs.com/unrecognized/p/11550327.html