首页 > 代码库 > leetcode------Min Stack
leetcode------Min Stack
标题: | Min Stack |
通过率: | 15.2% |
难度: | 简单 |
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.
- push(x) -- Push element x onto stack.
- pop() -- Removes the element on top of the stack.
- top() -- Get the top element.
- getMin() -- Retrieve the minimum element in the stack.
本题如果直接用java内置的stack,那么迎刃而解,出这个题的目的就是不让用把。我直接用了模拟栈,头插入链表去解决这个问题,题目相对比较简单,实现的时候做好为空判断和最小值的问题,看代码就能看出来最小值的问题。代码如下:
1 class MinStack { 2 Node top = null; 3 4 public void push(int x) { 5 if (top == null) { 6 top = new Node(x); 7 top.min = x; 8 } else { 9 Node temp = new Node(x);10 temp.next = top;11 top = temp;12 top.min = Math.min(top.next.min, x);13 }14 }15 16 public void pop() {17 top = top.next;18 19 }20 21 public int top() {22 return top == null ? 0 : top.val;23 }24 25 public int getMin() {26 return top == null ? 0 : top.min;27 }28 }29 30 class Node {31 int val;32 int min;33 Node next;34 35 public Node(int val) {36 this.val = val;37 }38 }
leetcode------Min Stack
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。