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

    题目描述

    定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
    注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。
     
    思路:想要找到栈中所含最小元素的min函数,可以用一个栈来存储最小元素,但是又要防止这个最小元素弹出,所以需要存储次小元素到栈中。
     
     1 import java.util.Stack;
     2 
     3 public class Solution {
     4     Stack<Integer> stack=new Stack<>();
     5     Stack<Integer> smin=new Stack<>();
     6     
     7     public void push(int node) {
     8         stack.push(node);
     9         if(smin.isEmpty())
    10             smin.push(node);
    11         if(node<=smin.peek())
    12             smin.push(node);
    13     }
    14     
    15         public void pop() {
    16             if(smin.peek()==stack.peek())
    17                 smin.pop();
    18             stack.pop();
    19         }
    20         
    21         public int top() {
    22             return stack.peek();
    23         }
    24         
    25         public int min() {
    26             return smin.peek();
    27         }
    28 }
  • 相关阅读:
    小伙子的毕业设计
    mongoDB
    Java面试题笔试题收集
    react-router4 介绍
    React 组件间通信 总结
    react ajax
    react应用(基于react脚手架)
    React 之 组件生命周期
    组件收集表单数据
    组件的组合使用
  • 原文地址:https://www.cnblogs.com/jacob-wuhan/p/12979756.html
Copyright © 2011-2022 走看看