以下為我的天梯積分規則:
每日至少一題:一題積分+10分
若多做了一題(或多一種方法解答),則當日積分+20分(+10+10)
若做了三道以上,則從第三題開始算+20分(如:做了三道題則積分-10+10+20=40;做了四道題則積分–10+10+20+20=60)
初始分為100分
若差一天沒做題,則扣積分-10分(周六、周日除外注:休息)
堅持!!!
初級算法
刷題目錄
設計問題
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yN1YzY2kzNjZ2Y2QmZ5EDO2UGZ0ADNwATZ1MWM3cjY58CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
題幹
設計一個支援 push ,pop ,top 操作,并能在常數時間内檢索到最小元素的棧。
push(x) —— 将元素 x 推入棧中。
pop() —— 删除棧頂的元素。
top() —— 擷取棧頂元素。
getMin() —— 檢索棧中的最小元素。
示例:
輸入:
[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”]
[[],[-2],[0],[-3],[],[],[],[]]
輸出: [null,null,null,null,-3,null,0,-2]
解釋: MinStack minStack = new MinStack(); minStack.push(-2);
minStack.push(0); minStack.push(-3); minStack.getMin(); --> 傳回 -3.
minStack.pop(); minStack.top(); --> 傳回 0. minStack.getMin();
–> 傳回 -2.
棧操作
這道題讓我們自定義一個棧,有push,pop,top,min四個函數。這題和官方的Stack相比就多了一個min函數。我們用python實作,有内置函數,其實還是很香很友善的,哈哈哈
class MinStack:
def __init__(self):
self.stack = list()
def push(self, val: int) -> None:
self.stack.append(val)
def pop(self) -> None:
self.stack.pop()
def top(self) -> int:
return self.stack[-1]
def getMin(self) -> int:
return min(self.stack)