【重点】【栈】剑指offer——面试题22:栈的压入、弹出序列

避坑指南:PVE下N卡直通错误代码43的终极解决思路与dmesg日志分析 本文详细解析了PVE环境下NVIDIA显卡直通时遇到的错误代码43问题,提供了从dmesg日志分析到BIOS配置、PVE宿主机优化及虚拟机设置的完整解决方案。特别针对GTX1060等显卡,分享了驱动版本选择、ROM修补及高级排错技巧,帮助用户彻底解决这一常见难题。 阅读详情

力扣

Python

思路要清晰!!!

class Solution:
    def validateBookSequences(self, putIn: List[int], takeOut: List[int]) -> bool:
        stack, j = [], 0
        for item in putIn:
            stack.append(item)
            while stack and stack[-1] == takeOut[j]:
                stack.pop()
                j += 1
        
        return not stack

Java

// 自己代码略繁琐
class Solution {
    public boolean validateBookSequences(int[] putIn, int[] takeOut) {
        if (putIn.length == 0) {
            return true;
        }
        Stack<Integer> stack = new Stack<>();
        for (int i = 0, j = 0; i < putIn.length && j < takeOut.length; ++i) {
            stack.push(putIn[i]);
            while (!stack.isEmpty() && stack.peek() == takeOut[j]) {
                stack.pop();
                ++j;
            }
        
        }

        return stack.isEmpty();
    }
}

// 参考答案简练!
class Solution {
    public boolean validateBookSequences(int[] putIn, int[] takeOut) {
        Stack<Integer> stack = new Stack<>();
        int j = 0;
        for (int num : putIn) {
            stack.push(num);
            while (!stack.isEmpty() && stack.peek() == takeOut[j]) {
                stack.pop();
                ++j;
            }
        }

        return stack.isEmpty();
    }
}

// 自己答案太繁琐!!!
class Solution {
    public boolean validateBookSequences(int[] putIn, int[] takeOut) {
        if (putIn.length == 0) {
            return true;
        }
        Stack<Integer> stack = new Stack<>();
        int i = 0, j = 0;
        while (j < takeOut.length) {
            if (stack.isEmpty() && i < putIn.length) {
                stack.push(putIn[i++]);
            } else if (!stack.isEmpty() 
                        && i < putIn.length 
                        && stack.peek() != takeOut[j]) {
                stack.push(putIn[i++]);
            } else if (!stack.isEmpty() && stack.peek() == takeOut[j]) {
                stack.pop();
                ++j;
            } else if (i >= putIn.length) {
                break;
            }
        }

        return stack.isEmpty();
    }
}

##Solution1:
要理解并背诵此题!
参考网址:
https://www.cnblogs.com/AndyJee/p/4651281.html
https://www.nowcoder.com/profile/8709341/codeBookDetail?submissionId=17099336
思路:
1.建立一个辅助栈;
2.将第一个序列的数字压入辅助栈;
3.如果第二个序列的下一个弹出数字刚好是栈顶数字,则直接弹出,第二个序列弹出当前数字,辅助栈也弹出该数字;
4.否则,就把第一个序列中尚未入栈的数字压入辅助栈,直到把第二个序列中下一个需要弹出的数字压入栈顶为止。
5.如果第一个序列的所有数字都已经入栈了,第二个序列中仍然有数字未被弹出,即辅助栈未被清空。则return false。

class Solution {
public:
    bool IsPopOrder(vector<int> pushV,vector<int> popV) {
        if(pushV.size() == 0) return false;
        vector<int> stack;
        for(int i = 0,j = 0 ;i < pushV.size();){
            stack.push_back(pushV[i++]);
            while(j < popV.size() && stack.back() == popV[j]){
                stack.pop_back();
                j++;
            }      
        }
        return stack.empty();
    }
};

##Solution2:
20180901重做

class Solution {
public:
    bool IsPopOrder(vector<int> pushV,vector<int> popV) {
        if (pushV.size() == 0) return false;
        stack<int> push_stack;
        for (int i = 0,j = 0 ;i < pushV.size();) {
            push_stack.push(pushV[i++]);
            while (j < popV.size() && push_stack.top() == popV[j]) {
                push_stack.pop();
                j++;
            }
        }
        return push_stack.empty();
    }
};
物联网开发131 - Micropython ESP32 C3连接TB6600驱动42BYGH39步进电机 如何使用合宙ESP32 C3连接TB6600驱动42BYGH39步进电机,实现控制步进电机正反转和旋转指定角度等 阅读详情

相关推荐

二维卡尔曼滤波位置,速度融合

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

Johnlee2019的博客 8451

出鞘之剑指offer-第22题 (链表中倒数第k个节点)

题目: 输入一个链表,输出这个链表的第 k 个节点。本题从 1 开始计数,即链表的尾节点是倒数第 1 个节点。 分析一: 设置两个指针 P1 和 P2,先让 P1 移动 K 个节点,则还有 N - K 个节点可以移动。此时让 P1 和 P2 同时移动,可以知道当 P1 移动到链表结尾时,P2 移动到第 N - K 个节点处,该位置就是倒数第 K 个节点。 代码一: package offer.xzs.twentytwo; public class Demo01 { public .

246

DisplayPort 1.4扰码原理与16位并行LFSR实现

DisplayPort物理层信号完整性依赖于数据扰码技术,其本质是通过线性反馈移位寄存器(LFSR)对传输数据进行伪随机化处理,以改善频谱分布、抑制低频能量堆积、提升时钟恢复能力并降低EMI辐射。该技术广泛应用于高速串行接口如DP、PCIe和USB,核心在于确定性伪随机序列生成与收发端同步。DisplayPort 1.4强制要求符合ANSI X3.230标准的16级LFSR,并在8b/10b编码后执行扰码;而传统串行实现难以满足21.6Gbps速率下的时序约束,必须采用并行展开结构——将16拍移位压缩为单周

weixin_29192211的博客 313

图解剑指 Offer 22. 链表中倒数第k个节点 JavaScript 实现

剑指 Offer 22. 链表中倒数第k个节点 JavaSCript 实现问题描述代码 问题描述 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。 示例: 给定一个链表: 1->2->3->4->5, 和 k = 2. 返回链表 4->5. 代码 var getKthFromEnd = fu

ryyzxf的博客 285

【NTN 卫星通信】Starlink 星链卫星有多大?详解尺寸与技术参数

SpaceX的星链项目正在重塑全球互联网连接,尤其是在服务不足的地区。但星链卫星的实际尺寸有多大?

weixin_43603524的博客 1万+

深入解析MOS管电容特性:从基础理论到高频应用

本文深入解析了MOS管的电容特性,从基础物理结构出发,详细拆解了栅氧电容、重叠电容和结电容的成因与影响。文章重点探讨了电容值随工作状态变化的非线性特性,并分析了其在CMOS高频开关电源、射频电路等应用中的关键作用,包括开关损耗、米勒效应、信号完整性挑战以及如何将电容特性转化为可控元件(如MOS变容管)的机遇。最后提供了从选型、仿真到PCB布局的实战设计指南。

weixin_29278805的博客 381

【leetcode】剑指 Offer 22. 链表中倒数第k个节点(简单)

【leetcode】剑指 Offer 22. 链表中倒数第k个节点(简单)、链表、C

weixin_43442758的博客 190

一文看懂—Agent多智能体协作

多智能体协作已成为AI应对复杂任务的关键范式,通过模拟人类团队分工,实现专业化、高效化和纠错能力。本文系统阐述了多智能体协作的核心概念(智能体分工、工作流编排、工具使用)、与产品规划的关联(任务拆解、错误处理、组织架构设计),以及典型应用场景(报告生成、客服工单、学习规划)。同时剖析了常见陷阱(循环卡死、信息失真、成本失控)及解决方案,并提供了实用工具模板(角色定义卡、工作流画布、成本仪表盘)。最后通过市场竞品分析和旅行规划两个实战案例,展示了多智能体协作的实际价值。该技术正推动AI从单点智能迈向系统智能,

lee006006的博客 1033

剑指Offer 22题:链表中环的入口结点

连接: 剑指Offer 22 题目: 给定一个链表,返回链表开始入环的第一个节点。 从链表的头节点开始沿着 next 指针进入环的第一个节点为环的入口节点。如果链表无环,则返回 null。 方法一:快慢指针 分成两步, 第一步:先使用快慢指针法判断链表是否成环,若不成环则返回null;成环则进行下一步 第二步:若成环,则再建立一个新的慢指针newCur从head出发,slow继续从之前快慢指针重合的位置出发,两个步长为1的指针一定会相遇!相遇的位置就是环的入口! public class Solution

机械工程跑路哥 234

EDSR图像超分辨程序复现(踩坑及解决记录)

EDSR图像超分辨程序复现(踩坑及解决记录)

Sunny_Coder的博客 3642

npm install 时出现npm error code ENOTFOUND和npm error network request to https://registry.npmjs.org的解决方案

本文主要介绍了npm install 时出现npm error code ENOTFOUND和npm error network request to https://registry.npmjs.org 的解决方案,希望能对使用npm的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 6万+

leetcode剑指 Offer 22. 链表中倒数第k个节点

leetcode剑指offer 第22题

m0_52834070的博客 289

2025华为OD机试真题目录汇总 B+C+D+E卷(570道)(Python语言)

本文是华为OD机试真题(Python 语言)专栏的目录贴(持续更新中…)华为OD是Outsourcing Dispacth模式,是华为和外企德科联合招聘的简称。目前华为大多数是OD招聘。OD模式也是华为提出的一种新的用工形式,每年都会从OD项目挑优秀员工转为正编。所有OD和正式员工一样对待,没有差别,部门平时开会、评审等活动都是一起参加的,是同薪同酬,都是由华为的HR直接定的薪资,看的是我们技术能力。华为是大企业,能到华为上班也是有能力的,每个部门都有好多职位,是金子,在哪都会发光。

KJ.JK 18万+

【剑指offer】面试题22:栈的压入、弹出序列

题目: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。 代码:(注意其中的while循环和其后的if语句,容易出错) class Solution { public: ...

weixin_30478757的博客 63

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

剑指offer——Java版

剑指offer——Java版以下按照出现频率进行排序常见的结构体定义链表树24 反转列表03 数组中重复的数字09 用两个栈实现队列38 字符串的排列51 数组中的逆序对22 链表中倒数第k个结点11 旋转数组的最小数29 顺时针打印矩阵07 重建二叉树06 从尾到头打链表04 二维数组中的查找20 表示数值的字符串48 最长不含重复字符的子字符串40 最小的k个数10-I 斐波那契数列13 机器人运动轨迹 以下按照出现频率进行排序 常见的结构体定义 链表 public class ListNode {

weixin_42605958的博客 992

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

深入doocs/leetcode:剑指Offer题解精讲

深入doocs/leetcode:剑指Offer题解精讲 【免费下载链接】leetcode ????LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解 ...

gitblog_00030的博客 411

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

剑指offer--C++面试总结

(本文章根据自己阅读《剑指offer名企面试官精讲典型编程题》总结C++面试) 一、非技术方面 1、薪资方面: ①招聘网站对应岗位的相关薪资结合自己的能力定下自己的期望薪资和最低接受工资。 ②面试过程中自己不主动提薪资,一般薪资在面试最后阶段提及,此时公司对自己有意向,才有谈薪资前提。谈薪资阶段问面试官这个岗位的薪资范围,在根据自己的期望薪资和最低工资合理调整,当然也要考虑一下你对进该公司...

qq_23903863的博客 744

算法之剑指offer题目总结

简介 剑指offer中的题目是面试中考察的重点,本篇文章对这些题目进行总结,方便日后阅读。 题目 题目顺序参考 leetcode 中出现的顺序。 1. 数组中重复的数字 2. 二维数组中的查找 3. 替换空格 4. 从尾到头打印链表 5. 重建二叉树 6. 用两个栈实现队列 7. 斐波那契数列 8. 青蛙跳台阶问题 9. 旋转数组的最小数字 10. 矩阵中的路径 解析 1. 数组中重复的数字 题目描述 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有

pl0321的博客 3570

剑指offer 刷题笔记

1.二维数组的查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思考 从右上角开始查找,每次比较目标值和当前位置,如果小于目标值,行索引++,大于目标值,列所索引++,否则返回true 代码 class Solution { public b...

qinian_ztc的博客 433

剑指offer面试题分类总结

剑指offer第二版中的题目按所涉及知识可分为以下几类: 当然每个题可能涉及多个知识点的运用。数组:面试题3:数组中重复的数字 面试题4:二维数组中的查找 面试题21:调整数组顺序使奇数位于偶数前面 面试题39:数组中出现次数超过一半的数字 面试题42:连续子数组的最大和 面试题45:把数组排成最小的数 面试题49:丑数 面试题50:第一个只出现一次的字符 面试题51:数组中的逆序

shixiaolong 1911

《剑指offer》之知识汇总

1.应聘者需熟练掌握链表、树、栈、队列和哈希表等数据结构,以及它们的操作。链表和二叉树相关的问题是很多面试官喜欢问的问题。 2.大部分公司都会注重考查查找、排序等算法。应聘者可以在了解各种查找和排序算法的基础上,重点掌握二分查找、归并排序和快速排序(随时正确完整地写出代码),很多面试题只是这些算法的变体而已。如 面试题8“旋转数组的最小数字”和面试题38“数字在排序数组中出现的次数”的本质是考查二

NodYoung 1686

GitHub#algorithm#:《剑指offer》 的50道面试题

Copyright(C) nonstriater:https://github.com/nonstriater/Learn-Algorithms《剑指offer》 这本书给出了50到面试题,涉及到字符串处理,堆栈,链表,二叉树等问题的处理。代码鲁榜性:边界条件,特殊输入,异常处理:空指针分析方法:画图,举例,分解查找和排序是常考:重点掌握二分查找,快速排序,归并排序本书完整源代码在:赋值运算符函数...

RToax 1622

算法刷题专栏介绍

剑指offer,力扣热题,牛客top100

weixin_41171614的博客 1056

最全的《剑指offer》题目解析---C++

面试题 题目1:定义一个空的类型,里面没有任何的成员变量和成员函数,对该类型求sizeof,结果是多少? 答案:1 追问:为什么不是0? 答案:空类型的实例中不包含任何信息,本来求sizeof应该是0,但是当我们声明该类型的实例的时候,它必须在内存中占有一定的空间,否则无法使用这些实例。至于占用多少内存,由编译器决定。Visual Studio中每个空类型的实例占用1字节的空间。 追问:如果在该类型中添加一个构造函数和析构函数,再对该类型求sizeof,得到的结果又是多少? 答案:和前面一样,还

qq_47406941的博客 850

剑指Offer:面试题22——栈的压入,弹出序列(java实现)

题目描述: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。 思路: 遍历待测试序列,如果当前元素在栈顶,出栈即可,否则,查看是否所有待入栈元素已入栈,如是说明当前元素在栈里面

一个人漫步走 2347

剑指Offer22题栈的压入、弹出序列 java解答(如有错误欢迎批评指正)

import java.util.Stack; public class IsPopOrder { public boolean isPopOrder(int[] push, int[] pop){ boolean possible = false; if(push.length>0 && pop.length>0){ int countPush = -1; int

yuhushangwei的专栏 678
上一篇: 【栈】剑指offer——面试题21:包含min函数的栈
下一篇: 【BFS】剑指offer——面试题23:从上往下打印二叉树
Allenlzcoder
博客等级 码龄10年 925粉丝 512原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值