941.有效的山脉数组

给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false

让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:

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

最新文章

  1. grub2配置显示系统选择菜单(ubuntu 14.04)
  2. HTML的select控件美化
  3. C#微信开发小白成长教程二(新手接入指南,附视频)
  4. google map api v2的使用详细过程,图文并茂(原创)
  5. 转:Java NIO系列教程(三) Buffer
  6. sql 联合查询并更新
  7. Silverlight学习之初始化参数
  8. 不用找了,比较全的signalR例子已经为你准备好了.
  9. TreeView控制消息
  10. 使用Ratpack与Spring Boot构建高性能JVM微服务
  11. asp.net core系列 46 Identity介绍
  12. Android自动解析html带图片,实现图文混排
  13. Django 中的static文件的设置
  14. JavaEEMybatis基础整理
  15. 将markdown文档使用gulp转换为HTML【附带两套css样式】
  16. Trident的过滤操作
  17. 高通adsp架构下sensor
  18. 组播协议——IGMP v2报文头介绍
  19. 如何VMare虚拟机里安装Mac操作系统(图文详解)
  20. JS 中的布尔运算符 &amp;&amp; 和 ||

热门文章

  1. [Algo] 280. Sort With 2 Stacks
  2. Eova 怎么放在 Docker中,使用阿里云流水线构建Eova!!
  3. 利用CSS制作背景变色的横向导航栏
  4. metinfo_5.3变量覆盖引发的一系列问题
  5. ubuntu linux下解决“no java virtual machine was found after searching the following locations:”的方法
  6. HTTP Status 500 - Request processing failed; nested exception is java.lang.IllegalArgumentException: Control character in cookie value or attribute.
  7. LeetCode No.94,95,96
  8. 路由器协议----IGP、EGP、RIP、OSPF、BGP、MPLS
  9. 【mysql学习】InnoDB数据结构
  10. iOS路由详解