首页 > 代码库 > Leetcode#155 Min Stack
Leetcode#155 Min Stack
原题地址
非常经典的题目了。双栈法,一个普通栈,一个最小值栈
入栈时:除了入普通栈之外,如果当前待入栈元素小于等于最小值栈顶元素,那么同时入最小值栈
出栈时:除了出普通栈之外,如果当前待出栈元素小于等于最小值栈顶元素,那么同时出最小值栈
查看栈顶元素:返回普通栈顶元素
查看最小元素:返回最小值栈顶元素
代码:
1 stack<int> st; 2 stack<int> minSt; 3 4 void push(int x) { 5 st.push(x); 6 if (minSt.empty() || x <= minSt.top()) 7 minSt.push(x); 8 } 9 10 void pop() {11 if (st.empty()) return;12 if (st.top() == minSt.top())13 minSt.pop();14 st.pop();15 }16 17 int top() {18 if (st.empty()) return -1;19 else return st.top();20 }21 22 int getMin() {23 if (st.empty()) return -1;24 else return minSt.top();25 }
Leetcode#155 Min Stack
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。