zoukankan      html  css  js  c++  java
  • 包含min函数的栈

    题目描述

    定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
    注意:保证测试中不会当栈为空的时候,对栈调用pop()或者min()或者top()方法。
     
     1 import java.util.*;
     2 
     3 public class Solution {
     4 
     5     ArrayList<Integer> s;
     6     Stack<Integer> s_min;
     7     public Solution() {
     8         s = new ArrayList<>();
     9         s_min = new Stack<>();
    10     }
    11     public void push(int node) {
    12         if (s.size() == 0) {
    13             s.add(node);
    14             s_min.push(node);
    15         } else {
    16             if (node > s_min.peek()) {
    17                 s_min.push(s_min.peek());
    18             } else {
    19                 s_min.push(node);
    20             }
    21             s.add(node);
    22             
    23         }
    24         
    25         
    26         
    27     }
    28     
    29     public void pop() {
    30         if (s.size() != 0) {
    31             s.remove(s.size() - 1);
    32             s_min.pop();
    33         }
    34     }
    35     
    36     public int top() {
    37         if (s.size() != 0) {
    38             return s.get(0);
    39         }
    40         return -1;
    41     }
    42     
    43     public int min() {
    44         if (s.size() != 0) {
    45             return s_min.peek();
    46         }
    47         return -1;
    48     }
    49 }
  • 相关阅读:
    顺序容器
    forward_list
    array
    第十一章 关联容器
    C++数组
    C++标准库算法
    第十章 泛型算法
    第九章 顺序容器
    操作系统概述
    文件输入输出
  • 原文地址:https://www.cnblogs.com/hyxsolitude/p/12336337.html
Copyright © 2011-2022 走看看