30.包含min函数的栈(容易被误导的一题)
Last updated
class MinStack {
var elements: [Int] = []
var smaller: [Int] = []
init() {
}
func push(_ x: Int) {
elements.append(x)
if smaller.last == nil || smaller.last ?? 0 >= x {
smaller.append(x)
}
}
func pop() {
if elements.removeLast() == smaller.last {
smaller.removeLast()
}
}
func top() -> Int {
return elements.last ?? 0
}
func min() -> Int {
return smaller.last ?? 0
}
}