Leetcode 941. 有效的山脉数组 Valid Mountain Array

【题目描述】
给定一个整数数组 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]

【示例1】

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

【示例2】

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

【示例3】

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

【图】


hint_valid_mountain_array (1).png

像上图这样的数组就是山脉数组!

【思路】
1、山脉数组:也就是说数组arr中间有一个index,index左边都小于arr[index],右边都大于arr[index]
2、首先找到这个index,随着数组遍历index++
3、遍历index左边,arr[index] > arr[index+1],false
4、遍历index右边,arr[index] < arr[index+1],false
5、返回index+1 == arr.count

代码:

func validMountainArray(_ A: [Int]) -> Bool {
    var add = 0
    while add+1 < A.count && A[add+1] > A[add] {
        add+=1
    }
    if add == 0 || add == A.count-1 {
        return false
    }
    while add+1 < A.count && A[add+1] < A[add]{
        add+=1
    }
    return add+1 == A.count
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原创声明 本文系作者辛苦码字所得,欢迎分享和转载,但请在明显位置注明作者的如下信息:笔名:来碗鸡蛋面简书主页:ht...
    来碗鸡蛋面阅读 3,230评论 0 4
  • 第四天 数组【悟空教程】 第04天 Java基础 第1章数组 1.1数组概念 软件的基本功能是处理数据,而在处理数...
    Java帮帮阅读 1,612评论 0 9
  • 数组的定义 数组是按序号排列的一组值,每个值的位置都有编号(从0开始)。数组本质上是一种特殊的对象。它的键名是按(...
    Allin_Lin阅读 572评论 0 0
  • 一维数组: A:为什么要有数组(容器) 为了存储同种数据类型的多个值 B:数组概念 数组是存储同一种数据类型多个元...
    爱睡觉的小章鱼阅读 715评论 0 1
  • 4 奶奶喜欢聊过去的事。老爸没事的时候,就陪她在院子里坐着,两个人闲聊。母子两个聊得还挺起劲。有时他们会聊到爷爷在...
    小勇说说阅读 271评论 0 2