題目:棧的最小值
具體描述:
請設計乙個棧,除了常規棧支援的pop與push函式以外,還支援min函式,該函式返回棧元素中的最小值。執行push、pop和min操作的時間複雜度必須為o(1)。
示例:
minstack minstack = new minstack();題解:minstack.push(-2);
minstack.push(0);
minstack.push(-3);
minstack.getmin(); --> 返回 -3.
minstack.pop();
minstack.top(); --> 返回 0.
minstack.getmin(); --> 返回 -2.
class
minstack
:def
__init__
(self)
:"""
initialize your data structure here.
"""self.stack1=
#棧 self.stack2=
#存放最小值的list
defpush
(self, x:
int)
->
none:if
len(self.stack2)==0
:else:if
(self.stack2[-1
]> x)
:else:-
1])def
pop(self)
->
none
: self.stack1.pop(
) self.stack2.pop(
)def
top(self)
->
int:
return
(self.stack1[-1
])defgetmin
(self)
->
int:
return
(self.stack2[-1
])# your minstack object will be instantiated and called as such:
# obj = minstack()
# obj.push(x)
# obj.pop()
# param_3 = obj.top()
# param_4 = obj.getmin()
力扣 面試題 03 02 棧的最小值 雙棧
思路 搞個雙棧,乙個棧就做正常的操作,另外乙個棧搞成單調非增的即可。有兩種實現方式。class minstack void push int x void pop int top int getmin private 正常的棧 stack int s 單調非公升棧 stack int min you...
LeetCode力扣 最小棧
最小棧 就是在棧中新增乙個求棧中最小元素的方法 問題描述設計乙個棧,其中包括 示例 結果 minstack minstack new minstack 無返回minstack.push 2 無返回minstack.push 0 無返回minstack.push 3 無返回minstack.getmi...
力扣 155 最小棧
設計乙個支援 push pop top 操作,並能在常數時間內檢索到最小元素的棧。push x 將元素 x 推入棧中。pop 刪除棧頂的元素。top 獲取棧頂元素。getmin 檢索棧中的最小元素。class minstack public void pop public int top publi...