ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
**题目** 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。要求函数min、push以及pop的时间复杂度都是O(1)。 * * * **思路** 利用辅助栈来保存Push和pop后每一步的最小值 ``` let stack = [] let minStack = [] function push(node) { // write code here // 如果第一个node或者是node值比最小值栈的最小值还小,则在最小值栈里push node if (minStack.length === 0 || node < minStack[minStack.length-1]) { minStack.push(node) stack.push(node) } // 否则最小值栈里push原最小值 minStack.push(minStack[minStack.length-1]) stack.push(node) } function pop() { // write code here minStack.pop() return stack.pop() } function top() { // write code here return stack[stack.length-1] } function min() { // write code here return minStack[minStack.length-1] } ```