美文网首页数据结构与算法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