任务描述:定义栈的数据结构,并在该类型中实现一个能够得到栈最小值,查询时间复杂度为O(1)的min函数。
思路:通过同时维护两个栈来实现,第一个栈为普通的栈,正常进栈出栈,第二个栈当push时若元素大于栈顶的元素,则跳过push,若元素小于或等于栈顶的元素,则正常push。当pop时,普通栈正常出栈,若pop出的元素等于第二个栈栈顶元素,则同样pop出第二个栈栈顶元素,否则跳过pop
Python实现
1 | class Solution: |
任务描述:定义栈的数据结构,并在该类型中实现一个能够得到栈最小值,查询时间复杂度为O(1)的min函数。
思路:通过同时维护两个栈来实现,第一个栈为普通的栈,正常进栈出栈,第二个栈当push时若元素大于栈顶的元素,则跳过push,若元素小于或等于栈顶的元素,则正常push。当pop时,普通栈正常出栈,若pop出的元素等于第二个栈栈顶元素,则同样pop出第二个栈栈顶元素,否则跳过pop
Python实现
1 | class Solution: |