美文网首页数据结构与算法LeetCode
Leetcode 941. 有效的山脉数组 Valid Moun

Leetcode 941. 有效的山脉数组 Valid Moun

作者: 1江春水 | 来源:发表于2019-12-26 17:50 被阅读0次

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

相关文章

网友评论

    本文标题:Leetcode 941. 有效的山脉数组 Valid Moun

    本文链接:https://www.haomeiwen.com/subject/cgjloctx.html