题目:
定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。
要求函数min、push以及pop的时间复杂度都是O(1)。
思路:
时间复杂度要求O(1),则用空间换时间;
建立辅助栈,这个栈记录当前最小值的位置或者值;
push的时候,当前最小值和要push的值比较一下,push到辅助栈的还是小的数;
pop的时候,辅助栈和栈一起弹出;
min的时候,就是辅助栈的栈顶位置;
更好的思路评论
题目:
定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。
要求函数min、push以及pop的时间复杂度都是O(1)。
思路:
时间复杂度要求O(1),则用空间换时间;
建立辅助栈,这个栈记录当前最小值的位置或者值;
push的时候,当前最小值和要push的值比较一下,push到辅助栈的还是小的数;
pop的时候,辅助栈和栈一起弹出;
min的时候,就是辅助栈的栈顶位置;
更好的思路评论