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.經典方法 使用...