首页 > 其他分享 >剑指 Offer 31. 栈的压入、弹出序列(中等)

剑指 Offer 31. 栈的压入、弹出序列(中等)

时间:2023-08-02 21:35:01浏览次数:42  
标签:压入 Offer 31 pushed vector 序列

题目:

class Solution {
public:
    bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {      //模拟,pushed里的每一个元素都必定经过入栈和出栈的操作
        stack<int> st;
        for(int i=0,j=0;i<pushed.size();i++){           //遍历pushed数组,每一个元素都进行一次入栈操作
            st.push(pushed[i]);
            while(!st.empty()&&st.top()==popped[j]){    //循环判断当前栈顶元素是否出栈。栈不为空且当前popped元素与栈顶元素相等时进行出栈操作,否则继续入栈。
                st.pop();                               
                j++;
            }                                           //若无法出栈,则继续入栈
        }
        return st.empty();                              //最后栈为空才是正常的   
    }
};

以上代码转自力扣官方题解

标签:压入,Offer,31,pushed,vector,序列
From: https://www.cnblogs.com/fly-smart/p/17601786.html

相关文章

  • 剑指 Offer 53 - II. 0~n-1中缺失的数字(简单)
    题目:classSolution{public:intmissingNumber(vector<int>&nums){for(inti=0;i<nums.size();i++){//观察题目,就是找出下标不一致的值if(nums[i]!=i){returni;}}returnnums.size()......
  • 剑指 Offer 55 - I. 二叉树的深度
    输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。例如:给定二叉树[3,9,20,null,null,15,7],3/\920/\157返回它的最大深度3。使用递归回溯/***Definitionfor......
  • 暑假牛客多校第五场 2023-7-31(G、D、H)
    未补完G.GotoPlayMaimaiDX算法:双指针做法:从左到右用两个指针维护一段区间且右指针不断右移,当这个区间满足题目所给的性质,我们取出区间长度,然后再将左指针右移,直到右指针到边界且左指针指到不符合题目的性质的位置结束,期间不断对符合题目性质的区间长度取最小值。code......
  • 剑指 Offer 03. 数组中重复的数字(简单)
    题目;classSolution{public:intfindRepeatNumber(vector<int>&nums){intresult;unordered_set<int>set;//利用集合寻找重复的数字for(auton:nums){if(set.find(n)==set.end()){//如果set里没找到就加入set......
  • 剑指 Offer 53 - I. 在排序数组中查找数字 I(简单)
    题目:classSolution{public:intsearch(vector<int>&nums,inttarget){intcount=0;for(auton:nums){if(n==target){count++;}}returncount;}};......
  • 逆向——字符与字符串,中文字符GB2312编码由来
    字符与字符串在之前的课程中我们了解到变量的定义决定两个事情,第一是决定存储的数据宽度,第二是决定了存储的数据格式,那么我们来看下下面的代码:inta=123;//变量x,数据宽度为4个字节,里面存储的是补码(在计算机系统中,数值一律用补码来存储)intfloatb=123.4F;//IEEE编码(浮点)......
  • 剑指 Offer 57. 和为s的两个数字
    输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。示例1:输入:nums=[2,7,11,15],target=9输出:[2,7]或者[7,2]示例2:输入:nums=[10,26,30,31,47,60],target=40输出:[10,30]或者[30,10]双指......
  • ABC311E 题解
    看到官方题解是\(O(n^2)\)的dp。提供一个\(O(n^2\log_2n)\)的做法,考场思路,大概比较简单。Description给一个\(H\)行\(W\)列的网格,其中一些点被涂成黑色,求整个正方形内都未被涂黑的正方形的个数。Solution考场上首先想到的简单暴力做法,即枚举正方形左上角端点,然......
  • 剑指 Offer 29. 顺时针打印矩阵(简单)
    题目://不可以用代码随想录里螺旋矩阵的思路classSolution{public:vector<int>spiralOrder(vector<vector<int>>&matrix){vector<int>result;if(matrix.empty())returnresult;intrl=0,rh=matrix.size()-1;......
  • 不忘初心 Windows11 22H2 22621.2070 x64 无更新 精简 游戏 2023.07.31 集成最新版任
    注意此版不能更新补丁,而且非纯净版,此版为游戏版,为游戏稳定而生也可以用于办公,保留Hyper和linux,体积和稳定性介于可更新版和无更新版之间,集成任务栏透明软件,独家4K全新高清壁纸,增加右键一些功能,以及离线集成了运行库,绝对给你带来不一样的视觉体验,不一样的美!为了保证稳定初心的系统......