转跳到内容

每 日 算 法 挑 战 【第5期】


只显示该作者

只有该作者的内容显示中。 返回到主题

推荐贴

车队入库嘛……2个栈 栈1姑且叫连续栈 栈2叫临时栈好了

需要记录2个值 连续栈的最大值和最小值 初始值为0

然后记录当前已处理的值 初始为0

对每一个输入值 判断是不是已处理值+1 如果是则输出 不需要过栈 然后更新已处理值

同时判断连续栈是否可以清空 即已处理值是否等于连续栈最小值+1

如果需要入中转栈 那么判断是不是可以直接入连续栈 即是否等于连续栈最小值-1 或者连续栈为空

如果不能则需要启用临时栈 

临时栈的逻辑稍微麻烦一点 要借用连续栈保证临时栈里的元素是逆序的 具体伪代码略

 

不过反正你问的是需要几个栈……

 

稍微想了一下好像不需要连续栈的最大值……那个本来是用来合并连续栈的 但是反正合并的时候也要用到第二个栈 

,由ppzt修改

ppzt在诱导萌新女装时被路过的随便拦下,被批评教育并收取学费-3节操

链接到点评
6 小时前, Mr.K 018 说道:

陷阱受害者+1

有一说一 我特意提了一句不同输入序列结果会不同的来着

想想看,什么情况下一个栈就行呢?这才是本题的第二个关键

我说了啊……啥时候需要启用顺序栈 啥时候需要启用临时栈 

链接到点评
×
×
  • 新建...

重要消息

为使您更好地使用该站点,请仔细阅读以下内容: 使用条款