包含min函数的栈

求解代码

java 复制代码
Stack<Integer> stackData1 = new Stack<Integer>();
    Stack<Integer> stackData2 = new Stack<Integer>();


    public void push(int node) {
        stackData1.push(node);
        if(stackData2.isEmpty()||node<=min()){
            stackData2.push(node);
        }
    }
    
    public void pop() {
        if(stackData1.peek().equals(min())){
            stackData2.pop();
        }
        stackData1.pop();
    }
    
    public int top() {
        return stackData1.peek();
    }
    
    public int min() {
        return stackData2.peek();
    }

小贴士

stackData1.peek().equals(min()) 来比较包装类的实际数值,也可以用 stackData1.peek().intValue() == min(),效果是一样的。

相关推荐
晴天的雨.9927 小时前
【C++算法】和为s的两个数
开发语言·数据结构·c++·算法
IvanCodes12 小时前
Python 数据处理(十三):JSON、CSV 与数据序列化
开发语言·python
alexhilton12 小时前
藏在设备上的秘密,终究藏不住
android·kotlin·android jetpack
步行cgn13 小时前
Spring c 命名空间注入详解
java·后端·spring
明月_清风13 小时前
Maven 到底是什么?一篇文章搞懂 Java 项目构建与依赖管理
java·后端·maven
aramae13 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
Rain的Java大神之路14 小时前
如何快速上传10G文件
java·spring boot·redis·后端·mysql·spring cloud·面试
Wang's Blog14 小时前
Java 接入Redis: 通用命令与键管理
java·服务器·redis
Wang's Blog14 小时前
Java 接入Redis: 列表集合与有序集合操作命令
java·服务器·redis
Ivanqhz15 小时前
SVD++算法
java·服务器·网络·深度学习·神经网络