题目描述
构建一个栈,并且定义它的功能:
push、pop、getMin和top
思路
第一次提交答案时,出现了time limit的情况。
分析原因:如果getMin用遍历的方法,时间复杂度为O(n),不满足题目要求。
解决方法:定义两个栈,另外一个栈存放当前元素的最小值,这样在牺牲空间的前提下,能够降低时间复杂度。
代码
见https://shenjie1993.gitbooks.io/leetcode-python/155%20Min%20Stack.html
题目描述
构建一个栈,并且定义它的功能:
push、pop、getMin和top
思路
第一次提交答案时,出现了time limit的情况。
分析原因:如果getMin用遍历的方法,时间复杂度为O(n),不满足题目要求。
解决方法:定义两个栈,另外一个栈存放当前元素的最小值,这样在牺牲空间的前提下,能够降低时间复杂度。
代码
见https://shenjie1993.gitbooks.io/leetcode-python/155%20Min%20Stack.html