leetcode在力扣 App 中打开
调试中...
调试中...
题目描述
题目描述
题解
题解
提交记录
提交记录
代码
代码
测试用例
测试用例
测试结果
测试结果
简单
相关标签
相关企业
提示

三合一。描述如何只用一个数组来实现三个栈。

你应该实现push(stackNum, value)pop(stackNum)isEmpty(stackNum)peek(stackNum)方法。stackNum表示栈下标,value表示压入的值。

构造函数会传入一个stackSize参数,代表每个栈的大小。

示例 1:

 输入:
["TripleInOne", "push", "push", "pop", "pop", "pop", "isEmpty"]
[[1], [0, 1], [0, 2], [0], [0], [0], [0]]
 输出:
[null, null, null, 1, -1, -1, true]
说明:当栈为空时`pop, peek`返回-1,当栈满时`push`不压入元素。

示例 2:

 输入:
["TripleInOne", "push", "push", "push", "pop", "pop", "pop", "peek"]
[[2], [0, 1], [0, 2], [0, 3], [0], [0], [0], [0]]
 输出:
[null, null, null, null, 2, 1, -1, -1]

 

提示:

  • 0 <= stackNum <= 2
通过次数
25.6K
提交次数
47.7K
通过率
53.7%

相关标签

相关企业

提示 1
栈只是一个数据结构,其中最近添加的元素首先被删除。你能用一个数组来模拟单个栈吗?请记住,有很多可能的解法且每个解法都有其利弊。

提示 2
我们可以通过将数组的前三分之一分配到第一个栈、第二个三分之一分配到第二个栈、最后的第三个三分之一分配到第三个栈,来模拟数组中的三个栈。然而,实际上某个栈可能比其他的大得多。能更灵活地分配吗?

提示 3
如果你想考虑灵活划分,可以移动栈。你能保证使用所有可用的容量吗?

提示 4
试着把数组看作是循环的,这样数组的结尾就“环绕”到了数组的开始部分。

评论 (0)

《程序员面试金典(第 6 版)》独家授权
本书是原谷歌资深面试官的经验之作,帮助了许多想要加入脸书、苹果、谷歌等 IT 名企的求职者拿到 Dream offer。本专题的 100+ 编程面试题是在原书基础上精心挑选出来的,帮助你轻松应战 IT 名企技术面试。
© 2025 领扣网络(上海)有限公司
0 人在线
行 1,列 1
["TripleInOne", "push", "push", "pop", "pop", "pop", "isEmpty"]
[[1], [0, 1], [0, 2], [0], [0], [0], [0]]
Source