题解 | #栈的压入、弹出序列#

栈的压入、弹出序列

https://www.nowcoder.com/practice/d77d11405cc7470d82554cb392585106

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param pushV int整型一维数组 
     * @param popV int整型一维数组 
     * @return bool布尔型
     */
    public boolean IsPopOrder (int[] pushV, int[] popV) {
        int length = pushV.length;

        int pushVindex = 0;

        Deque<Integer> stack = new ArrayDeque<>();
        stack.push(pushV[pushVindex]);
        pushVindex++;

        for (int i = 0; i != length; ++i) {
            int target = popV[i];

            while (stack.isEmpty() || stack.peek() != target) {
                if (pushVindex == length) return false;
                stack.push(pushV[pushVindex]);
                pushVindex++;                
            }

            stack.pop();
        }

        return true;
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
03-28 13:48
hory权:校招vip纯神人了,还说自己是什么师范大学的
点赞 评论 收藏
分享
ResourceUtilization:我嘞个董事长
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务