多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
**题目** 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的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] } ```