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