力扣 騰訊精選練習50題C 155最小棧

2021-10-05 18:41:34 字數 883 閱讀 5899

最小棧

設計乙個支援 push,pop,top 操作,並能在常數時間內檢索到最小元素的棧。

push(x) -- 將元素 x 推入棧中。

pop() -- 刪除棧頂的元素。

top() -- 獲取棧頂元素。

getmin() -- 檢索棧中的最小元素。

示例:minstack minstack = new minstack();

minstack.push(-2);

minstack.push(0);

minstack.push(-3);

minstack.getmin(); --> 返回 -3.

minstack.pop();

minstack.top(); --> 返回 0.

minstack.getmin(); --> 返回 -2.

解法1:用兩個棧實現最小棧功能

乙個棧s存放資料,另乙個棧min存放前棧中最小的資料

class minstack 

void push(int x)

}void pop()

int top()

int getmin()

};

解法2:乙個棧實現

棧中兩個資料位合成乙個單元,第乙個資料位存放當前資料到末尾的最小值,第二個資料位存放當前資料。

class minstack 

void push(int x)

else

else}}

void pop()

int top()

int getmin()

};

LeetCode題目之騰訊精選練習(50題) 子集

給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集 冪集 說明 解集不能包含重複的子集。示例 輸入 nums 1 2,3 輸出 3 1 2 1,2,3 1,3 2,3 1,2 public ilist int subsets int nums for int k len k list...

騰訊精選50題(1)

155.最小棧 設計乙個支援push,pop,top操作,並能在常數時間內檢索到最小元素的棧。示例 minstack minstack new minstack minstack.push 2 minstack.push 0 minstack.push 3 minstack.getmin 返回 3....

騰訊精選50題(2)

20.有效的括號 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 1.左括號必須用相同型別的右括號閉合。2.左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 4 輸入 輸出 fa...