LeetCode.941-有效山形数组(Valid Mountain Array)
这是悦乐书的第360次更新,第387篇原创
01 看题和准备
今天介绍的是LeetCode
算法题中Easy
级别的第222
题(顺位题号是941
)。给定一个整数数组A
,当且仅当它是一个有效的山形数组时返回true
。
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[A.length-1]
例如:
输入:[2,1]
输出:false
输入:[3,5,5]
输出:false
输入:[0,3,2,1]
输出:true
注意:
0 <= A.length <= 10000
0 <= A [i] <= 10000
02 解题
根据题目的规则,要满足山形数组的条件,不仅数组元素个数要大于等于三个,并且要存在一个值,使得在这个值之前的元素是递增形势,在这个值之后的元素是递减形势。
从数组第一个元素开始遍历,做递增判断,直到不满足条件为止,经历递增的判断后,需要判断索引是否位于中间,即不能是0或者是最后一个,再继续递减的判断,判断结束后,判断索引是否等于最后一位即可。
public boolean validMountainArray(int[] A) {
if (A == null || A.length < 3) {
return false;
}
int index = 0, n = A.length-1;
while (index < n && A[index] < A[index+1]) {
index++;
}
// 如果A是单调递增或者单调递减,直接返回false
if (index == 0 || index == n) {
return false;
}
while (index < n && A[index] > A[index+1]) {
index++;
}
return index == n;
}
03 小结
算法专题目前已连续日更超过七个月,算法题文章228+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。
以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!
LeetCode.941-有效山形数组(Valid Mountain Array)的更多相关文章
- LeetCode 941. 有效的山脉数组(Valid Mountain Array)
941. 有效的山脉数组 941. Valid Mountain Array 题目描述 给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false. 让我们回顾一下,如果 A ...
- [Swift]LeetCode941. 有效的山脉数组 | Valid Mountain Array
Given an array A of integers, return true if and only if it is a valid mountain array. Recall that A ...
- 【LeetCode】941. Valid Mountain Array 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 【leetcode】941. Valid Mountain Array
题目如下: Given an array A of integers, return true if and only if it is a valid mountain array. Recall ...
- 【Leetcode_easy】941. Valid Mountain Array
problem 941. Valid Mountain Array solution: class Solution { public: bool validMountainArray(vector& ...
- Valid Mountain Array LT941
Given an array A of integers, return true if and only if it is a valid mountain array. Recall that A ...
- Weekly Contest 111-------->941. Valid Mountain Array(max_element)
Given an array A of integers, return true if and only if it is a valid mountain array. Recall that A ...
- LeetCode 852. Peak Index in a Mountain Array C++ 解题报告
852. Peak Index in a Mountain Array -- Easy 方法一:二分查找 int peakIndexInMountainArray(vector<int>& ...
- LeetCode 941. Valid Mountain Array (有效的山脉数组)
题目标签:Array 题目给了一组int array A,让我们判断它是否是 一个山脉数组. 山脉数组一定要有一个最高值,然后要同时有 山坡和下坡. 想法是,从左边开始依次比较两个数字,int[0] ...
随机推荐
- 添加了两个IP
//第一步:添加了两个IP root@default:~# ifconfig eth1:0 192.168.99.10 netmask 255.255.255.0 up root@default:~# ...
- Linux下内存查看及详解
在Linux下面,我们常用top命令来查看系统进程,top也能显示系统内存.我们常用的Linux下查看内容的专用工具是free命令. Linux下内存查看命令free详解: 在Linux下查看内存我们 ...
- jar包部署在linux上后浏览器访问不到的问题
1.首先保证程序是正常运行的 2.linux的防火墙是否关闭 3.可能是iptables里面需要设置白名单 可编辑/etc/sysconfig/iptables文件加入应用端口的白名单 修改后执行sy ...
- electron桌面通知,修改默认通知应用名electron.app.Electron为自己应用的名称
在做electron桌面通知时,按照文档实现弹出通知,但是默认的应用名为electron.app.Electron 解决办法 就是在主进程中设置 app.setAppUserModelId('myAp ...
- Python 操作 MySQL 数据库Ⅳ
执行事务 事务机制可以确保数据一致性. 事务应该具有4个属性:原子性.一致性.隔离性.持久性.这四个属性通常称为ACID特性. 原子性(atomicity).一个事务是一个不可分割的工作单位,事务中包 ...
- 23. ClustrixDB AUTO_UNIQUE
AUTO_INCREMENT 许多表具有使用AUTO_INCREMENT自动填充的代理键.ClustrixDB也支持这个MySQL特性,并在将记录插入表时创建惟一的ID.这些生成的id单调递增. 惟一 ...
- AngularJS 前端 MVC 的设计与搭建
代码 #未引入MVC框架之前的代码 <!doctype html> <html> <head> <meta charset="UTF-8" ...
- sh_01_列表基本使用
sh_01_列表基本使用 name_list = ["zhangsan", "lisi", "wangwu"] # 1. 取值和取索引 # ...
- JavaWeb_(设计模式)单例模式
菜鸟教程 传送门 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 这种模式涉及到一个单一的类,该 ...
- Android_(游戏)打飞机06:后续
(游戏)打飞机01:前言 传送门 (游戏)打飞机02:游戏背景滚动 传送门 (游戏)打飞机03:控制玩家飞机 传送门 (游戏)打飞机04:绘画敌机.添加子弹 传送门 (游戏)打飞机05:处理子弹, ...