题解 | #包含min函数的栈#

包含min函数的栈

http://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49

向栈中存放元素:stack.push(); 获取栈顶元素:stack.peek(); 删除栈顶元素(返回值为删除的元素):stack.pop();

import java.util.Stack;

public class Solution {
    
    //正常栈操作
    private Stack<Integer> stack = new Stack<Integer>();
    //保存最小值栈
    private Stack<Integer> mins = new Stack<Integer>();
    public void push(int node) {
         stack.push(node);
         //最小值栈为空或元素小于最小值栈顶元素则入栈
         if(mins.isEmpty() || node <= mins.peek())
             mins.push(node);
    }
    
    public void pop() {
    //两个栈顶元素相同则最小值栈顶也需要弹出
         if(stack.peek().equals(mins.peek()))
             mins.pop();
         stack.pop();
    } 
    
    public int top() {
        return stack.peek();
    }
    
    public int min() {
        return mins.peek();
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 18:25
点赞 评论 收藏
分享
点赞 评论 收藏
分享
zhch7:建议9✌️把学历加黑加粗,如果实在offer可能是觉得佬不会去
投了多少份简历才上岸
点赞 评论 收藏
分享
程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务