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] ...
随机推荐
- Avro从入门到入土
avro官网 1.Avro历史 Avro是Hadoop的一个数据序列化系统,由Hadoop的创始人Doug Cutting(也是Lucene,Nutch等项目的创始人)开发,设计用于支持大批量数据交换 ...
- GridControl的列DisplayFormat自定义方法
定义格式化的类: public class EnableFormat : IFormatProvider, ICustomFormatter { public object GetFormat(Typ ...
- linux7buffer和cache
现象:作为hdfs集群的主节点,越来越卡 排查:CPU,mem CPU正常,检查内存情况,发现如下 如上截图:发现程序可用内存为91G,但是部分swap分区被占用.于是引出如下思考,free -h这条 ...
- JavaWeb_(SSH论坛)_二、框架整合
基于SSH框架的小型论坛项目 一.项目入门 传送门 二.框架整合 传送门 三.用户模块 传送门 四.页面显示 传送门 五.帖子模块 传送门 六.点赞模块 传送门 七.辅助模块 传送门 导入Jar包 导 ...
- php的switch函数
PHP Switch 语句 PHP If...Else PHP While 循环 switch 语句用于基于不同条件执行不同动作. Switch 语句 如果您希望有选择地执行若干代码块之一,请使用 S ...
- uswgi
1.安装uwsgi注意: 1)在系统环境安装,非虚拟环境 2)使用对应python版本安装 3)要先安装python开发包 ###sudo apt-get install python3.6-dev ...
- JAVA使用easyexcel操作Excel
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本 ...
- 循环链表C语言实现
按照单链表的设计,稍加改动.和单向链表不一样的地方,头节点不指向NULL,而是指向自己head 循环链表的判满 1)判断next是不是头结点,2)判断size /* * CycleLinkList.h ...
- python3笔记十二:python数据类型-Dictionary字典
一:学习内容 字典概念 字典创建 字典访问 字典添加 字典删除 字典遍历 字典与列表比较 二:字典概念 1.使用键值对(key-value)存储,具有极快的查找速度 2.注意:字典是无序的 3.特性: ...
- leetcode-easy-string-14 Longest Common Prefix
mycode 91.59% class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: if not str ...