题目:
定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。
要求函数min、push以及pop的时间复杂度都是O(1)。
思路:
时间复杂度要求O(1),则用空间换时间;
建立辅助栈,这个栈记录当前最小值的位置或者值;
push的时候,当前最小值和要push的值比较一下,push到辅助栈的还是小的数;
pop的时候,辅助栈和栈一起弹出;
min的时候,就是辅助栈的栈顶位置;
更好的思路评论
本文详细介绍了如何通过使用辅助栈来实现一个具有min、push、pop操作时间复杂度均为O(1)的栈结构。通过比较当前元素与辅助栈顶元素,实现快速获取栈内最小值的功能。
题目:
定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。
要求函数min、push以及pop的时间复杂度都是O(1)。
思路:
时间复杂度要求O(1),则用空间换时间;
建立辅助栈,这个栈记录当前最小值的位置或者值;
push的时候,当前最小值和要push的值比较一下,push到辅助栈的还是小的数;
pop的时候,辅助栈和栈一起弹出;
min的时候,就是辅助栈的栈顶位置;
更好的思路评论
2659

被折叠的 条评论
为什么被折叠?