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 }
  • 相关阅读:
    jQuery 核心
    Js实现内容向上无缝循环滚动
    浅析CSS postion属性值用法
    JS原生Ajax请求
    详解SQL集合运算
    Windows上开启IIS
    poj 4618 暴力
    hdu 4614 线段树
    poj 3468 线段树
    hdu 1698 线段树成段更新
  • 原文地址:https://www.cnblogs.com/pkuYang/p/4228680.html
Copyright © 2011-2022 走看看