image.png

    1. class MinStack {
    2. private List<Integer> stack;
    3. private List<Integer> assit; //辅助栈
    4. /** initialize your data structure here. */
    5. public MinStack() {
    6. this.stack=new ArrayList<>();
    7. this.assit=new ArrayList<>();
    8. }
    9. public void push(int x) {
    10. stack.add(x);
    11. if (assit.isEmpty()){
    12. assit.add(x);
    13. }else if(x< assit.get(assit.size()-1)){
    14. assit.add(x);
    15. }else{
    16. assit.add(assit.get(assit.size()-1));
    17. }
    18. }
    19. public void pop() {
    20. stack.remove(stack.size()-1);
    21. assit.remove(assit.size()-1);
    22. }
    23. public int top() {
    24. return stack.get(stack.size()-1);
    25. }
    26. public int getMin() {
    27. return assit.get(assit.size()-1);
    28. }
    29. }