【剑指Offer】31.栈的压入、弹出序列
题目
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。
1. 0<=pushV.length == popV.length <=1000
2. -1000<=pushV[i]<=1000
3. pushV 的所有数字均不相同
示例1
输入:[1,2,3,4,5],[4,5,3,2,1]
返回值:true
说明:可以通过push(1)=>push(2)=>push(3)=>push(4)=>pop()=>push(5)=>pop()=>pop()=>pop()=>pop() 这样的顺序得到[4,5,3,2,1]这个序列,返回true
示例2
输入:[1,2,3,4,5],[4,3,5,1,2]
返回值:false
说明:由于是[1,2,3,4,5]的压入顺序,[4,3,5,1,2]的弹出顺序,要求4,3,5必须在1,2前压入,且1,2不能弹出,但是这样压入的顺序,1又不能在2之前弹出,所以无法形成的,返回false
解答
源代码
import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param pushV int整型一维数组 * @param popV int整型一维数组 * @return bool布尔型*/public boolean IsPopOrder (int[] pushV, int[] popV) {// write code hereint len = pushV.length;Deque<Integer> stack = new ArrayDeque<>();// 遍历入栈数组的下标int j = 0;// 遍历出栈数组的下标for (int i = 0; i < len; i++) {while (j < len && (stack.isEmpty()||stack.peekLast() != popV[i])) {stack.offerLast(pushV[j]);j++;}if (stack.peekLast() == popV[i]) {stack.pollLast();} else {return false;}}return true;}
}
总结
用两个变量记录入栈和出栈数组的下标,维护一个临时栈来演示入栈、弹出的顺序,如果做得到就返回true,否则返回true。
相关文章:
【剑指Offer】31.栈的压入、弹出序列
题目 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就…...
Linux设置开机自启动奇安信可信浏览器,并配置默认页面
1. 先安装奇安信可信浏览器 安装完成后,会在/usr/share/applications/目录下生成一个 qaxbrowser-safe.desktop文件。 2.配置fixfox开机自启动 使用root用户进行如下操作: 将qaxbrowser-safe.desktop 文件复制到 ~/.config/autostart/ 目录下…...
flink1.15 异步维表Join 用于外部数据访问的异步 I/O scala版本
官方文档 Asynchronous I/O for External Data Access 异步 I/O | Apache Flink 核心问题 问什么有官方文档,我还要写个博客,因为scala Future这块有坑. 1 为什么我的算子显示反压100% 2 为什么我的任务不报错,也没有输出 3 Future对象我该怎么构建,有哪些注意事项. pom …...

Elasticsearch Relevance Engine---为AI变革提供高级搜索能力[ES向量搜索、常用配置参数、聚合功能等详解]
Elasticsearch Relevance Engine—为AI变革提供高级搜索能力[ES向量搜索、常用配置参数、聚合功能等详解] 今天要介绍的 Elasticsearch Relevance Engine™ (ESRE™),提供了多项用于创建高度相关的 AI 搜索应用程序的新功能。ESRE 站在 Elastic 这个搜索领域的巨人…...

微信小程序之会议OA系统首页布局搭建与Mock数据交互
目录 前言 一、Flex 布局( 分类 编程技术) 1、Flex布局是什么? 2、基本概念 3、容器的属性 3.1 flex-direction属性 3.2 flex-wrap属性 3.3 flex-flow 3.4 justify-content属性 3.5 align-items属性 3.6 align-content属性 4、项目…...

动态规划解股票类型
文章目录 单只股票买卖多次买卖单只股票最多两次买卖股票最多买k次含冷静期含手续费 单只股票买卖 买卖股票的最佳时机 关键思路:找到一个值,他与之后的最大值之差最大。 用minprice记录最小的值,用maxprofit记录最大的收益。 想清楚一个点…...
前端用 js-file-download组件下载后端返回的pdf,word,excel文件
后端返回的pdf,word,excel的文件流导出需要让浏览器下载文件 1、安装js-file-download组件 npm install js-file-download --save 2、在对应的页面引用 import fileDownload from "js-file-download"; 3、在接口返回结果后直接调用即可 let data{id:processId,c…...

Mac硬盘检测工具
Mac硬盘检测软件是一款用于检测和诊断Mac硬盘健康状态的工具,帮助用户及时发现潜在的硬盘问题,避免数据丢失和系统故障。通过全面的检测和报告功能,用户可以更好地了解自己的硬盘状况,确保数据的安全和可靠。给大家介绍几款好用的…...

一篇文章解密如何轻松实现移动应用的电子和手绘PDF签名功能!
对PDF文件签名是移动设备上越来越普遍的使用需求,本文将描述自动生成/“手绘”签名与如何使用DevExpress Office File API组件来实现在.NET MAUI应用程序中快速合并签名/签名支持之间的区别。 DevExpress Office File API是一个专为C#, VB.NET 和 ASP.NET等开发人员…...

【大数据】Kafka 入门简介
Kafka 入门简介 1.什么是 Kafka2.Kafka 的基本概念3.Kafka 分布式架构4.配置单机版 Kafka4.1 下载并解压包4.2 启动 Kafka4.3 创建 Topic4.4 向 Topic 中发送消息4.5 从 Topic 中消费消息 5.实验5.1 实验一:Python 实现生产者消费者5.2 实验二:消费组实现…...

Unity可视化Shader工具ASE介绍——8、UI类型的特效Shader编写
阿赵的Unity可视化Shader工具ASE介绍目录 Unity的UGUI图片特效角色闪卡效果 大家好,我是阿赵。 继续介绍Unity可视化Shader编辑插件ASE的使用。这次讲一下UI类特效Shader的写法。 一、例子说明 这次编写一个Shader,给一张UGUI里面的图片增加一个闪卡…...

科学指南针XPS | SEM | BET 降价:不赚钱,就和您交个朋友
尊敬的各位客户: 感谢您一直以来对科学指南针服务平台(下文简称:科学指南针)的支持和信任!科学指南针本着服务第一,客户至上的精神,多年来坚持为客户提供高质量的测试和服务,获得了广…...

nginx正反向代理,负载均衡
Nginx 正向代理,反向代理 ,负载均衡 Nginx有两种代理协议 七层代理(http协议) 四层代理(tcp/udp流量转发) 四层代理七层代理概念 四层代理 四层代理:基于tcp/ip协议层的转发代理方式&#…...

物联网中的MQTT协议总结
本文引注: https://mp.weixin.qq.com/s/y55wqYoWEvU9Q3-I0uu3cg 物联网曾被认为是继计算机、互联网之后,信息技术行业的第三次浪潮。随着基础通讯设施的不断完善,尤其是 5G 的出现,进一步降低了万物互联的门槛和成本。物联网本身也是 AI 和区…...
断点续传的原理和实现
断点续传是一种文件上传或下载的技术,允许用户在上传或下载中断后恢复操作而不必重新开始。其原理和实现可以分为以下步骤: 原理: 文件分割:将大文件分割成小块(分片)。上传/下载:客户端上传或…...

【小黑嵌入式系统第二课】嵌入式系统的概述(二)——外围设备、处理器、ARM、操作系统
上一课: 【小黑嵌入式系统第一课】嵌入式系统的概述(一)——概念、特点、发展、应用 下一课: 【小黑嵌入式系统第三课】嵌入式系统硬件平台(一)——概述、总线、存储设备(RAM&ROM&FLASH…...

Unity3D 在做性能优化时怎么准确判断是内存、CPU、GPU瓶颈详解
Unity3D是一款广泛应用于游戏开发的跨平台游戏引擎,但在开发过程中,我们经常会遇到性能瓶颈问题,如内存、CPU和GPU瓶颈。本文将详细介绍在Unity3D中如何准确判断和解决这些瓶颈问题,并给出相应的技术详解和代码实现。 对惹&#…...

pyqt5 QProgressDialog 进度条的使用 下载自动更新应用程序
pyqt5 QProgressDialog 进度条的使用 案例截图 思路 实例化进度条窗口设置窗口各属性包括标题 提示文字 和 窗口大小显示进度条窗口同过一个for循环 模拟进度 代码 from PyQt5.QtCore import QCoreApplication, QProcess from PyQt5.QtWidgets import QApplication,QProgre…...

【yolov5目标检测】使用yolov5训练自己的训练集
数据集准备 首先得准备好数据集,你的数据集至少包含images和labels,严格来说你的images应该包含训练集train、验证集val和测试集test,不过为了简单说明使用步骤,其中test可以不要,val和train可以用同一个,…...

出差学小白知识No5:ubuntu连接开发板|上传源码包|板端运行的环境部署
1、ubuntu连接开发板: 在ubuntu终端通过ssh协议来连接开发板,例如: ssh root<IP_address> 即可 这篇文章中也有关于如何连接开发板的介绍,可以参考SOC侧跨域实现DDS通信总结 2、源码包上传 通过scp指令,在ub…...

利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...

DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...