美文网首页
941. 有效的山脉数组

941. 有效的山脉数组

作者: calm_peng | 来源:发表于2018-11-18 13:10 被阅读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
     
    
    提示:
    
    0 <= A.length <= 10000
    0 <= A[i] <= 10000 
    
    
    image.png
    /*
    分析:首先长度 3个及以上 其次满足他的要求 先上升a[i]<a[i+1]    后下降a[i]>a[i+1] 必须两者都有!!! flag1 表示有上升 flag2 表示有下降 
    return flag1 && flag2
    
    坑点:
    因为 a[i+1] 注意不要越界
    数组中 不能有相等的 a[i] != a[i+1]
    */
    
    
    
    class Solution {
        public boolean validMountainArray(int[] A) {
            if(A.length < 3)
                return false;
            boolean flag1 = false;
            boolean flag2 = false;
            int i = 0;
            for( i = 0;i<A.length-1;i++){
                
                if(A[i]<A[i+1]){
                    flag1 = true;
                    continue;
                }else if(A[i] == A[i+1]){
                    return false;
                }else{
                    break;
                } 
            }
            
            for(;i<A.length-1;i++){
                
                if(A[i]>A[i+1]){
                     flag2 = true;
                    continue;
                }else if(A[i] == A[i+1]){
                    return false;
                }else{
                    return false;
                }
               
                
            }
            return flag1&&flag2;
        }
    }
    

    相关文章

      网友评论

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

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