• 剑指offer-包含min函数的栈


    题目:包含min函数的栈

    题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。

    思路:这个题也就是要给原有的栈结构增加一个得到当前最小值的函数

    我们使用一个额外的栈来进行辅助,设原有的栈为dataStack,辅助栈为minStack

    在入栈时,先将其放入dataStack中,如果minStack此时为空的话,将其也放入minStack,如果不为空,则比较minStack栈顶元素与当前放入元素的大小,只有比当前minStack栈顶小的元素才能放进去,这样minStack栈顶元素就一直是当前元素的最小值

    在出栈时,对两个栈一起进行pop;

    要得到最小元素时,直接从minStack栈中返回栈顶元素即可

    代码;

     1 import java.util.Stack;
     2 
     3 public class Solution {
     4       Stack<Integer>dateStack=new Stack<Integer>();
     5       Stack<Integer>minStack=new Stack<Integer>();
     6     public void push(int node) {
     7         dateStack.push(node);
     8         if(minStack.isEmpty()||node<minStack.peek()){
     9             minStack.push(node);
    10         }else{
    11             minStack.push(minStack.peek());
    12         }
    13     }
    14     
    15     public void pop() {
    16        dateStack.pop(); 
    17         minStack.pop();
    18     }
    19     
    20     public int top() {
    21        return dateStack.peek();
    22     }
    23     
    24     public int min() {
    25        return minStack.peek(); 
    26     }
    27 }
  • 相关阅读:
    数据库作业
    数据库知识点⑤
    数据库知识点④
    一个值得纪念的日子
    设计模式之单件模式
    HDU 5441 Travel
    HDU 5483 Nux Walpurgis
    Markdown 测试
    HDU 3271 SNIBB
    HDU 5536 Chip Factory
  • 原文地址:https://www.cnblogs.com/pathjh/p/9167891.html
Copyright © 2020-2023  润新知