江苏南京建设厅网站,万网主机 网站访问,手机网站优化怎么做,无备案网站 阿里联盟题目描述 定义栈的数据结构#xff0c;请在该类型中实现一个能够得到栈最小元素的min函数。 题目分析 首先一开始我们分析得到最小值肯定要比较嘛#xff0c;和栈里面的数据一一比较#xff0c;但是栈这种数据结构#xff0c;你又只能和栈顶弹出来的数据进行比较#xff0… 题目描述 定义栈的数据结构请在该类型中实现一个能够得到栈最小元素的min函数。 题目分析 首先一开始我们分析得到最小值肯定要比较嘛和栈里面的数据一一比较但是栈这种数据结构你又只能和栈顶弹出来的数据进行比较所以肯定需要一个临时栈嘛当然这只是一种思路就是其余的操作pop,push这些和栈的操作一样只是min的时候借助下临时栈将原来栈弹出来的保存下以便放回去。 另外一种思路也就是剑指offer里面推荐的思路就是增加了一个辅助栈每次压入数据栈时把当前栈里面最小的值压入辅助栈当中。这样辅助栈的栈顶数据一直是数据栈中最小的值。 比如data中依次入栈, 5, 4, 3, 8, 10, 11, 12, 1 则min依次入栈 5, 4, 3, 3, 3, 3, 3, 1 代码 const stack [],minStack [];
let tmp null;
function push(node) {if (tmp ! null) {if (tmp node) {tmp node;}stack.push(node);minStack.push(tmp);} else {tmp node;stack.push(node);minStack.push(tmp);}
}
function pop() {stack.pop();minStack.pop();
}
function top() {return stack[stack.length - 1];
}
function min() {return minStack[minStack.length - 1];
} 转载于:https://www.cnblogs.com/wuguanglin/p/min.html