zoukankan      html  css  js  c++  java
  • 剑指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 }
  • 相关阅读:
    UVa 12235 状压DP Help Bubu
    UVa 1407 树形背包 Caves
    UVa 11552 DP Fewest Flops
    webgl helloworld
    webgl 初识2
    laya3d 文件格式
    webgl 初识1
    HTTP消息头(HTTP headers)-常用的HTTP请求头与响应头
    gulp 定义依赖关系
    你真的了解内存泄露吗?
  • 原文地址:https://www.cnblogs.com/pathjh/p/9167891.html
Copyright © 2011-2022 走看看