【剑指offer】面试题31:栈的压入、弹出序列(Java)

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。

 

示例 1:

输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]
输出:true
解释:我们可以按以下顺序执行:
push(1), push(2), push(3), push(4), pop() -> 4,
push(5), pop() -> 5, pop() -> 3, pop() -> 2, pop() -> 1
示例 2:

输入:pushed = [1,2,3,4,5], popped = [4,3,5,1,2]
输出:false
解释:1 不能在 2 之前弹出。
 

提示:

0 <= pushed.length == popped.length <= 1000
0 <= pushed[i], popped[i] < 1000
pushed 是 popped 的排列。

代码:

class Solution {

    public boolean validateStackSequences(int[] pushed, int[] popped) {

         if(pushed.length==0&&popped.length==0)

            {

                return true;

            }

            if(pushed.length!=popped.length)

            {

                return false;

            }

            Stack<Integer> stack = new Stack<Integer>();

            int i=0,j=0;

            while(i<pushed.length)

            {

                if(stack.isEmpty())

                {

                    stack.push(pushed[i++]);

                }

                if(stack.peek()==popped[j])

                {

                    stack.pop();

                    j++;

                }

                else

                {

                    if(i>0&&popped[j]==pushed[i-1])

                    {

                        j++;

                        stack.pop();

                    }

                    else if(i<=pushed.length-1)

                    {

                        stack.push(pushed[i++]);

                    }

                    else

                    {

                        return false;

                    }

                }

            }

            while(j<popped.length)

            {

                if(popped[j]==stack.peek())

                {

                    j++;

                    stack.pop();

                }

                else{

                    return false;

                }

            }

            return true;

    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485124.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式事务两阶段提交

前言 不知道你是否遇到过这样的情况&#xff0c;去小卖铺买东西&#xff0c;付了钱&#xff0c;但是店主因为处理了一些其他事&#xff0c;居然忘记你付了钱&#xff0c;又叫你重新付。又或者在网上购物明明已经扣款&#xff0c;但是却告诉我没有发生交易。这一系列情况都是因为…

【重磅收藏】智源发布《人工智能的认知神经基础白皮书》

来源&#xff1a;brainnews完整报告下载链接????https://event-cdn.baai.ac.cn/20210308/2020-brain-and-machine-intelligence-report.pdf&#xff08;可点击「阅读原文」查看&#xff09;《2020年人工智能的认知神经基础白皮书》指导老师&#xff1a;智源“人工智能的认知…

ConcurrentHashMap源码剖析(1.8版本)

目录 ConcurrentHashMap源码剖析数据结构NodeForwardingNodeTreeNodeTreeBin核心成员核心函数ConcurrentHashMap(int initialCapacity)initTableputgettreeifyBintryPresizetransferaddCountConcurrentHashMap源码剖析 基于jdk1.8。 参考文章&#xff1a; https://yq.aliyun.co…

【剑指offer】面试题32 - I:从上到下打印二叉树(Java)

从上到下打印出二叉树的每个节点&#xff0c;同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回&#xff1a; [3,9,20,15,7] 提示&#xff1a; 节点总数 < 1000 代码&#xff1a; /** * D…

2021十大关键显示科技趋势

来源&#xff1a;国际信息显示学会SID排版&#xff1a;珊妮作者&#xff1a;Sri Peruvemba&#xff0c;CEO&#xff0c;Marketer International Inc.翻译&#xff1a;SID China2021年显示技术正在发生巨变&#xff0c;随着我们进入未来十年&#xff0c;我们将拥有更加智能、紧凑…

【剑指offer】面试题32 - II:从上到下打印二叉树 II(Java)

从上到下按层打印二叉树&#xff0c;同一层的节点按从左到右的顺序打印&#xff0c;每一层打印到一行。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果&#xff1a; [ [3], [9,20], [15,7] ] 提示&#xff1a…

spring整合ehcache2.5.2缓存异常-- net.sf.ehcache.CacheException

报错如下&#xff1a; The source of the existing CacheManager is: DefaultConfigurationSource [ ehcache.xml or ehcache-failsafe.xml ]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFacto…

科技议题“破圈”有利还是有弊|观点

编辑&#xff1a;赵路排版&#xff1a;郭刚作者&#xff1a;李侠最近几年时常出现科技议题进入社会领域并引起社会广泛关注的现象&#xff0c;学界通常将之称为“破圈”&#xff0c;即议题突破科技界原有的狭小圈子而进入更大的社会领域&#xff0c;并引来社会热议。客观地说&a…

【剑指offer】面试题32 - III:从上到下打印二叉树 III(Java)

请实现一个函数按照之字形顺序打印二叉树&#xff0c;即第一行按照从左到右的顺序打印&#xff0c;第二层按照从右到左的顺序打印&#xff0c;第三行再按照从左到右的顺序打印&#xff0c;其他行以此类推。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 /…

python---str和repr

在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法&#xff0c;即 str() 或者 repr() 。 区别与使用 函数str() 用于将值转化为适于人阅读的形式&#xff0c;而repr() 转化为供解释器读取的形式&#xff08;如果没有等价的语法&#xff0c;则会发生Syntax…

学术研究发现英特尔 CPU 存在新漏洞

作者&#xff1a;Thomas Claburn译者&#xff1a;Sambodhi策划&#xff1a;施尧美国的芯片黑客又想出了一种方法&#xff0c;利用英特尔的处理器设计选择来窃取敏感数据。伊利诺伊大学香槟分校的博士生 Riccardo Paccagnella、硕士生 Licheng Luo 和助理教授 Christopher Fletc…

Leetcode--994. 腐烂的橘子(java)

在给定的网格中&#xff0c;每个单元格可以有以下三个值之一&#xff1a; 值 0 代表空单元格&#xff1b; 值 1 代表新鲜橘子&#xff1b; 值 2 代表腐烂的橘子。 每分钟&#xff0c;任何与腐烂的橘子&#xff08;在 4 个正方向上&#xff09;相邻的新鲜橘子都会腐烂。 返回直…

CICC科普栏目丨时间之箭:从熵到大爆炸再到万物理论(一)

来源&#xff1a;BBC转自&#xff1a;数学加油吧假设有这么一天&#xff0c;你在家里感到无聊&#xff0c;你把几个鸡蛋顶在头上表演起杂耍&#xff0c;但你的表演不太成功&#xff0c;鸡蛋打碎糊了你一脸。现在你将不得不去洗下脸再冲个澡&#xff0c;然后换上一身新衣服。那为…

NOIP2007 树网的核

传送门 最近搞一搞树型结构……毕竟自己树的知识学的太垃圾了。 首先这道题非常明显要求树的直径。树的直径有好多好多种求法&#xff0c;这里我选择了一位dalao的非常简洁的dfs的方法。先看一下代码。 void dfs(int x) {for(int i head[x];i;i e[i].next){if(fa[x] e[i].to…

只有这种AI芯片才能拯救人工智能?

来源&#xff1a;内容由半导体行业观察&#xff08;ID&#xff1a;icbank&#xff09;编译&#xff1a;「wired」人工智能不断发展&#xff0c;对保持AI运行所需的计算能力的渴望也与日俱增。Lightmatter&#xff0c;一家诞生于MIT的初创公司&#xff0c;他们正在押注一款使用光…

【剑指offer】面试题33:二叉搜索树的后序遍历序列(Java)

输入一个整数数组&#xff0c;判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true&#xff0c;否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树&#xff1a; 5 / \ 2 6 / \ 1 3 示例 1&#xff1a; 输入: [1,6,…

CSS 小结笔记之文字溢出处理

有时文字会溢出盒子&#xff0c;这时一般要对文字进行溢出处理。一般有以下三种处理方法&#xff1a; 1、word-break:normal | break-all |keep-all normal 使用浏览器默认的换行 break-all 允许单词内换行即允许单词拆开显示 keep-all 不允许拆开单词显示&#xff0c;连字符除…

GPT-2大战GPT-3:OpenAI内部的一场终极对决

作者&#xff1a;Kevin Vu译者&#xff1a;Sambodhi策划&#xff1a;刘燕由于在训练过程中使用的数据集的多样性&#xff0c;我们可以为来自不同领域的文本获得足够的文本生成。GPT-2 的参数和数据是其前代 GPT 的 10 倍。而 GPT-3 又是 GPT-2 的 10 倍。那么问题来了&#xff…

【剑指offer】面试题34:二叉树中和为某一值的路径(Java)

输入一棵二叉树和一个整数&#xff0c;打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。 示例: 给定如下二叉树&#xff0c;以及目标和 sum 22&#xff0c; 5 / \ 4 8 / …

AI解梦成为现实,贝尔实验室新算法尝试找到梦境的隐藏含义

文章来源&#xff1a; 学术头条古代巴比伦人认为梦境包含了预言&#xff0c;而古埃及人则将梦境视为神灵给予的信息来崇拜。在 19 世纪 90 年代&#xff0c;西格蒙德弗洛伊德&#xff08;Sigmund Freud&#xff09;为梦境里面的人物、物体和场景分配了象征意义&#xff0c;并着…