zoukankan      html  css  js  c++  java
  • 剑指offer:包含min函数的栈

    一、题目描述

      定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。

    二、思路

      定义两个栈stack、min,一个是存放当前状态下的最小数的辅助栈。

      压栈时先将元素x压入stack然后根据情况判断min的压入元素

        如果min栈为空则直接将x元素压入(这个情况一开始没有考虑到)

        如果元素x比min的栈顶元素小,则将x压入min栈,否则将min栈的栈顶元素再次压入min栈。

      

    三、代码

     1 public class Solution {
     2 
     3     Stack<Integer> stack = new Stack<>();
     4     Stack<Integer> min = new Stack<>();
     5     
     6     public void push(int node) {
     7         stack.push(node);
     8         if(min.isEmpty()||node<min.peek()){
     9             min.push(node);
    10         }else{
    11             min.push(min.peek());
    12         }
    13     }
    14     
    15     public void pop() {
    16         stack.pop();
    17         min.pop();
    18     }
    19     
    20     public int top() {
    21        return stack.peek(); 
    22     }
    23     
    24     public int min() {
    25         return min.peek();
    26     }
    27 }
  • 相关阅读:
    CentOS 6.5通过yum的方式安装MySql
    Hbase集群搭建
    Thread类的常见问题
    关hashMap跟hashTable的区别
    mysql 循环插入100w
    Centos 多个mysql数据库
    CentOS 搭建 FastDFS-5.0.5集群
    RPC
    dubbo简述
    自己去看dubbo源码
  • 原文地址:https://www.cnblogs.com/blzm742624643/p/12246270.html
Copyright © 2011-2022 走看看