classMinStack{ var stack = [Int]() var point: Int var minNum: Int init() { stack = [] point =-1 minNum =Int.max }
funcpush(_val: Int) { point +=1 stack.append(val) if val <= minNum { minNum = val } }
funcpop() { if point >=0 { let num = stack.removeLast() point -=1 if num == minNum { minNum =Int.max for i instride(from: point, through: 0, by: -1) { minNum =min(stack[i], minNum) } } } }
functop() -> Int { if point >-1 { return stack[point] } return-1 }
funcgetMin() -> Int { if point >-1 { return minNum } return-1 } }
执行用时:76 ms, 在所有 Swift 提交中击败了57.14% 的用户 内存消耗:15 MB, 在所有 Swift 提交中击败了41.62% 的用户