zoukankan      html  css  js  c++  java
  • 包含min函数的栈(剑指offer-20)

    题目描述

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

    注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。

    题目解析

    Java里Stack的peek方法是返回栈顶的元素但不移除它,但Stack的pop方法是会移除的。

    题目答案

     1 import java.util.Stack;
     2 
     3 public class Solution {
     4 
     5     private Stack<Integer> dataStack= new Stack<>();//数据栈
     6     private Stack<Integer> minStack= new Stack<>();//最小数的栈
     7 
     8     public void push(int node) {
     9         dataStack.push(node);
    10         if(minStack.isEmpty() || minStack.peek()>dataStack.peek()){
    11             minStack.push(dataStack.peek());
    12         }
    13         else minStack.push(minStack.peek());
    14     }
    15     
    16     public void pop() {
    17         if(!dataStack.isEmpty()) dataStack.pop();
    18         if(!minStack.isEmpty()) minStack.pop();
    19     }
    20     
    21     public int top() {
    22         return dataStack.peek();// 取出数据栈的栈顶元素
    23     }
    24     
    25     public int min() {
    26         return minStack.peek();//取出含min函数的栈的栈顶元素
    27     }
    28 }
  • 相关阅读:
    Bootstrap框架
    前端基础之CSS
    前端知识之HTML内容
    python之路----递归函数
    python控制台输出带颜色文字的方法
    ELK搭建<三>:安装Kibana
    ELK搭建<二>:安装ES插件head
    ELK搭建<一>:搭建ES集群
    前端angular使用crypto-js进行加密
    Mac下全局安装yarn
  • 原文地址:https://www.cnblogs.com/yzhengy/p/13226813.html
Copyright © 2011-2022 走看看