騰訊精選50題(1)

2021-09-25 20:41:50 字數 1073 閱讀 5088

155.最小棧

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

示例:

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.最簡單粗暴的方法,定義2個棧,多定義的乙個棧存最小數

class minstack 

void push(int x)

}void pop()

int top()

int getmin()

};/**

* your minstack object will be instantiated and called as such:

* minstack* obj = new minstack();

* obj->push(x);

* obj->pop();

* int param_3 = obj->top();

* int param_4 = obj->getmin();

*/

2.只使用乙個棧,每次輸入2個元素,先push當前元素,再push當前最小的元素,保證上面的是小元素,下面的是正常壓入棧的元素

class minstack 

void push(int x)

else{

int temp=s.top();

s.push(x);

if(xpush(x);

* obj->pop();

* int param_3 = obj->top();

* int param_4 = obj->getmin();

*/

leetcode騰訊精選50題(1)

菜鳥第一課 給定乙個排序陣列,你需要在原地刪除重複出現的元素,使得每個元素只出現一次,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成。示例 1 給定陣列 nums 1,1,2 函式應該返回新的長度 2,並且原陣列 nums 的前兩個元素...

騰訊精選50題(2)

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

騰訊精選50題(8)

136.只出現一次的數字 給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。說明 你的演算法應該具有線性時間複雜度。你可以不使用額外空間來實現嗎?示例 1 輸入 2,2,1 輸出 1 示例 2 輸入 4,1,2,1,2 輸出 4 1.經典方法 使用...