You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
/*/*******************************************************************************
** **
** Jiedi(China nanjing)Ltd. **
** 创建:丁宋涛 夏曹俊,此代码可用作为学习参考 **
*******************************************************************************/
/*****************************FILE INFOMATION***********************************
**
** Project : 算法设计与编程实践---基于leetcode的企业真题库
** Contact : xiacaojun@qq.com
** 博客 : http://blog.csdn.net/jiedichina
** 视频课程 : 网易云课堂 http://study.163.com/u/xiacaojun
腾讯课堂 https://jiedi.ke.qq.com/
csdn学院 https://edu.csdn.net/course/detail/25037
** 51cto学院 http://edu.51cto.com/lecturer/index/user_id-100013755.html
** 老夏课堂 http://www.laoxiaketang.com
**
** 算法设计与编程实践---基于leetcode的企业真题库 课程群 : 296249312 加入群下载代码和交流
** 微信公众号 : jiedi2007
** 头条号 : 夏曹俊
**
*****************************************************************************
//! ! ! ! ! ! ! ! ! 算法设计与编程实践---基于leetcode的企业真题库 课程 QQ群: 296249312 下载代码和交流*/
/*
* @lc app=leetcode.cn id=155 lang=cpp
*
* [155] 最小栈
*/
# include <stack>
using namespace std ;
class MinStack {
public :
/** initialize your data structure here. */
MinStack ( ) {
}
void push ( int x ) {
s1 . push ( x ) ;
if ( s2 . empty ( ) | | x < = getMin ( ) )
s2 . push ( x ) ;
}
void pop ( ) {
if ( s1 . top ( ) = = getMin ( ) )
s2 . pop ( ) ;
s1 . pop ( ) ;
}
int top ( ) {
return s1 . top ( ) ;
}
int getMin ( ) {
return s2 . top ( ) ;
}
private :
stack < int > s1 ;
stack < int > s2 ; //s2是辅助栈, 始终存在s1的最小值
} ;
/**
* 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();
*/