力扣946. 验证栈序列

这一题的思路和下面一题是一摸一一样的,都是模拟一个栈的过程。

PAT 1051 Pop Sequence

因此代码是简单的:

c++ 复制代码
class Solution {
public:
    int cut=0;
    stack<int> s;
    bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {
      
       for(int i=0;i<popped.size();i++)
       {
             while(s.empty()||s.top()!=popped[i])
             {
                if(cut>=pushed.size())
                {
                    return false;
                }
                int x=pushed[cut];
                s.push(x);
                if(s.size()>popped.size())
                {
                    return false;
                }
                cut++;
              
             }
             s.pop();
       } 
       return true;
       



    }
};

我在写的时候出现了报错

出现了堆缓冲区溢出,访问 std::vector 时越界了。原因是我当时写的是

c++ 复制代码
if(cut>pushed.size())
{
   return false;
}

应该是

c++ 复制代码
if(cut>=pushed.size())
{
   return false;
}

因为cut是从0开始的,所以不能cut==pushed.size(),如果把cut=pushed.size(),让它push到栈中,就会出现访问越界。

以后写要注意啊

相关推荐
zhugby28 分钟前
受限长度路径搜索算法
经验分享·算法·启发式算法·哈密顿问题·路径搜索算法
芋头莎莎37 分钟前
STM32利用AES加密数据、解密数据
数据结构·stm32·算法
caron440 分钟前
c++ -- 循环依赖解决方案
java·c++·算法
Kt&Rs1 小时前
11.11 LeetCode 题目汇总与解题思路
算法·leetcode·哈希算法
py有趣1 小时前
LeetCode算法学习之有效的字母异位词
学习·算法·leetcode
Learn Beyond Limits1 小时前
Clustering vs Classification|聚类vs分类
人工智能·算法·机器学习·ai·分类·数据挖掘·聚类
chao1898441 小时前
遗传算法与粒子群算法优化BP提高分类效果
算法·分类·数据挖掘
ScilogyHunter1 小时前
卫星姿态控制模式全解析:从基准到任务的体系化分类
算法·分类
gihigo19983 小时前
MATLAB数值分析方程求解方法详解
算法·机器学习·matlab
程序员buddha7 小时前
C语言数组详解
c语言·开发语言·算法