码迷,mamicode.com
首页 > 其他好文 > 详细

[LC] 946. Validate Stack Sequences

时间:2020-06-08 00:29:09      阅读:53      评论:0      收藏:0      [点我收藏+]

标签:lin   push   first   turn   result   nat   init   The   list   

Given two sequences pushed and popped with distinct values, return true if and only if this could have been the result of a sequence of push and pop operations on an initially empty stack.

 

Example 1:

Input: pushed = [1,2,3,4,5], popped = [4,5,3,2,1]
Output: true
Explanation: We might do the following sequence:
push(1), push(2), push(3), push(4), pop() -> 4,
push(5), pop() -> 5, pop() -> 3, pop() -> 2, pop() -> 1

Example 2:

Input: pushed = [1,2,3,4,5], popped = [4,3,5,1,2]
Output: false
Explanation: 1 cannot be popped before 2.

Time: O(N)
class Solution {
    public boolean validateStackSequences(int[] pushed, int[] popped) {
        LinkedList<Integer> stack = new LinkedList<>();
        int index = 0;
        for (int num : pushed) {
            stack.offerFirst(num);
            while (!stack.isEmpty() && stack.peekFirst() == popped[index]) {
                stack.pollFirst();
                index += 1;
            }
        }
        return stack.isEmpty();
    }
}

 

[LC] 946. Validate Stack Sequences

标签:lin   push   first   turn   result   nat   init   The   list   

原文地址:https://www.cnblogs.com/xuanlu/p/13062883.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!