JZ20-包含min函数的栈

包含min函数的栈

https://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49?tpId=13&tags=&title=&diffculty=0&judgeStatus=0&rp=1&tab=answerKey

class Solution {

    Stack<Integer> normal = new Stack<>();
    Stack<Integer> min = new Stack<>();

    public void push(int node) {
        normal.push(node);

        if(min.isEmpty()){ //防止22行栈为空。
            min.push(node);
        }

        if(node<= min.peek()){  //如果插入的是更小的元素,就直接压入
            min.push(node);
        }else{
            min.push(min.peek());  //如果大于当前最小元素,直接把最小元素覆盖一次压入。。。为了保持同步
        }
    }

    public void pop() {
        normal.pop();
        min.pop();  //防止主栈中没有此元素了,min中还存在
    }

    public int top() {
        return normal.peek();
    }

    public int min() {
        return min.peek();
    }
}

全部评论

相关推荐

11-13 20:16
已编辑
厦门理工学院 软件测试
专业嗎喽:硕佬,把学校背景放后面几段,学校背景双非还学院,让人看了就不想往下看。 把实习经历和个人奖项放前面,用数字化简述自己实习的成果和掌握的技能,比如负责项目一次通过率90%,曾4次发现项目潜在问题风险为公司减少损失等等
点赞 评论 收藏
分享
程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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