1. 程式人生 > 實用技巧 >mysql中怎樣建立和使用儲存過程

mysql中怎樣建立和使用儲存過程

技術標籤:菜菜做題

劍指 Offer 30. 包含min函式的棧

定義棧的資料結構,請在該型別中實現一個能夠得到棧的最小元素的 min 函式在該棧中,呼叫 min、push 及 pop 的時間複雜度都是 O(1)。

解題思路:
藉助輔助棧,push時,當輔助棧為空或入棧元素<=輔助棧棧頂元素時,入主棧同時入輔助棧。pop時,當主棧與輔助棧棧頂元素相同時,同時彈出輔助棧元素和主棧元素。

class MinStack {
	stack<int> s;
	stack<int> m;
public:
    /** initialize your data structure here. */
MinStack() { } void push(int x) { s.push(x); if(m.empty()||x<=m.top()) m.push(x); } void pop() { if(s.top()==m.top()) m.pop(); s.pop(); } int top() { return s.top(); } int min() { return m.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->min(); */