美文网首页
leetcode-day17-有效的山脉数组[941]

leetcode-day17-有效的山脉数组[941]

作者: 孙静静 | 来源:发表于2020-11-03 16:28 被阅读0次
    image.png

    定义两个指针,一个从头开始,如果一路递增则记录最后值;一个从尾开始,一路递增则记录最后值,如果最后两个指针的最后值一样,则返回true

    算法思想: 双指针法+栈

    /**
     * @param {number[]} A
     * @return {boolean}
     */
    var validMountainArray = function(A) {
        // 双指针
        if(A.length<3) return false;
        let left_z = 0, right_z = A.length - 1;
        let stack = [A[0]], popshtack = [A[A.length - 1]];
        while(A.length > 0){
            let top = stack.pop();
            if(A[left_z+1] >= top){
                left_z++;
                stack.push(A[left_z]);
            } else {
                break;
            }
        }
        while(A.length > 0){
            let top = popshtack.pop();
            if(A[right_z-1] > top){
                right_z--;
                popshtack.push(A[right_z]);
            } else {
                break;
            }
        }
        if(left_z === A.length - 1 || right_z === 0){
            return false;
        }
        return left_z === right_z;
    };
    

    相关文章

      网友评论

          本文标题:leetcode-day17-有效的山脉数组[941]

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