leetcode155. 最小棧 1441. 用棧操作構建陣列 劍指 Offer 09. 用兩個棧實現佇列
題目:leetcode155. 最小棧
題目描述:設計一個支援 push ,pop ,top 操作,並能在常數時間內檢索到最小元素的棧。
程式碼:
class MinStack {
public:
/** initialize your data structure here. */
stack<int>s1;
stack<int>s2;
void push(int x) {
s1.push(x);
if(s2.empty()||x<=getMin()) s2.push(x);
}
void pop() {
if(s1.top()==s2.top()) s2.pop();
s1.pop();
}
int top() {
return s1.top();
}
int getMin() {
return s2.top();
}
};
/**
* 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();
*/
題目:leetcode1441. 用棧操作構建陣列
題目描述:給你一個目標陣列 target 和一個整數 n。每次迭代,需要從 list = {1,2,3…, n} 中依序讀取一個數字。
程式碼:
class Solution {
public:
vector<string> buildArray(vector<int>& target, int n) {
int i=1;
vector<string>ans;
for(int j=0;j<target.size();++j){
while(i<n&&i!=target[j]){
ans.push_back("Push");
ans.push_back("Pop");
++i;
}
ans.push_back("Push");
++i;
}
return ans;
}
};
題目:劍指 Offer 09. 用兩個棧實現佇列
題目描述:用兩個棧實現一個佇列。佇列的宣告如下,請實現它的兩個函式 appendTail 和 deleteHead ,分別完成在佇列尾部插入整數和在佇列頭部刪除整數的功能。(若佇列中沒有元素,deleteHead 操作返回 -1 )
程式碼:
class CQueue {
public:
CQueue() {}
stack<int>s1;
stack<int>s2;
void appendTail(int value) {
s1.push(value);
}
int deleteHead() {
if(!s1.empty()) return -1;
while(!s1.empty()){
int tmp=s1.top();
s1.pop();
s2.push(tmp);
}
int res=s2.top();
s2.pop();
while(!s2.empty()){
int temp=s2.top();
s2.pop();
s2.push(temp);
}
return res;
}
};
/**
* Your CQueue object will be instantiated and called as such:
* CQueue* obj = new CQueue();
* obj->appendTail(value);
* int param_2 = obj->deleteHead();
*/
相關文章
- 劍指offer | 09. 用兩個棧實現佇列佇列
- 劍指offer-用兩個棧實現佇列-php佇列PHP
- 【劍指offer】兩個棧實現一個佇列佇列
- 【劍指offer】兩個佇列實現一個棧佇列
- 《劍指 Offer》棧實現佇列佇列
- 用兩個棧實現佇列佇列
- 劍指offer(java實現)第5題“用兩個棧實現佇列”-牛客網Java佇列
- 兩個棧實現佇列操作佇列
- 1441 用棧操作構建陣列陣列
- 兩個棧實現佇列佇列
- 用佇列實現棧佇列
- 用棧實現佇列佇列
- 用2個棧實現佇列佇列
- 面試題之【用兩個棧實現佇列】面試題佇列
- 題目9:用兩個棧實現佇列佇列
- offer通過--7兩個棧實現佇列-2佇列
- offer通過--8兩個棧實現佇列-2佇列
- 9. 題目:對佇列實現棧&用棧實現佇列佇列
- Day 10| 232.用棧實現佇列 、 225. 用佇列實現棧佇列
- 用JavaScript實現棧與佇列JavaScript佇列
- 通過佇列實現棧OR通過棧實現佇列佇列
- [每日一題] 第七題:用兩個棧實現佇列每日一題佇列
- leedcode-用佇列實現棧佇列
- leedcode-用棧實現佇列佇列
- 【ZJOF】用來個棧來實現一個佇列佇列
- 用佇列實現棧,用棧實現佇列,聽起來有點繞,都搞懂了就掌握了精髓!佇列
- 用棧實現佇列,實現Enqueue和Dequeue方法佇列ENQ
- 佇列,棧佇列
- 棧、佇列佇列
- 棧-佇列佇列
- 力扣-232. 用棧實現佇列力扣佇列
- JavaScript資料結構之陣列棧佇列JavaScript資料結構陣列佇列
- LeetCode225. 用佇列實現棧LeetCode佇列
- 佇列和棧佇列
- 棧和佇列佇列
- C#實現棧和佇列C#佇列
- 《劍指offer》:[52]構建乘積陣列陣列
- 資料結構-js實現棧和佇列資料結構JS佇列