zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    如何用tar和gpg创建压缩加密的档案文件
    如何用Virt-rescue拯救虚拟机?
    如何在Linux中使用命令管理已安装的软件包?
    leetcode TOP100 字母异位词分组
    剑指offer 1-5
    XCTF(MISC) 坚持60s
    XCTF(MISC) give_you_flag
    XCTF MISC 如来十三掌
    XCTF(MISC) 图片隐写
    XCTF csaw2013reversing2
  • 原文地址:https://www.cnblogs.com/pkuYang/p/4228680.html
Copyright © 2011-2022 走看看