题目:
实现一个包含min函数的栈,min和push,pop都是o(1)时间
思路:
- 采用一个辅助的栈,来存储不同阶段的最小值 -
代码:
push(int value){
//data是数据栈,min是辅助栈用来存储最小值
data.push(value);
if(min.size() <= 0 || value < min.top()){
min.push(value);
}else{
min.push(min.top());
}
}
pop(){
if(min.size() <= 0 || data.size() <= 0){
return;
}
data.pop();
min.pop();
}
int min(){
if(min.size() <= 0 || data.size() <= 0){
return;
}
return min.top();
}
}
帮朋友招聘职位如下
普照天星【Java开发工程师】20-30k
http://www.jianshu.com/p/8b52751360df
产品经理20-30k
http://www.jianshu.com/p/cb0ac7a00796
我的微信二维码如下
微信订阅号二维码如下:
=