zoukankan      html  css  js  c++  java
  • 【面试题21】包含min函数的栈

    【题目描述】

    定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min,push及pop的时间复杂度都是O(1)。

    【解决方案】

    举例让抽象问题具体化,可以根据下图的例子进行构思。

    我的代码实现,仅供参考:

     1     class StackWithMin
     2     {
     3         Stack<int> stackNum = new Stack<int>();
     4         Stack<int> stackMin = new Stack<int>();
     5 
     6         public void Push(int value)
     7         {
     8             if (stackNum.Count < 1 || value <= stackMin.Peek())
     9             {
    10                 stackMin.Push(value);
    11             }
    12             else
    13             {
    14                 stackMin.Push(stackMin.Peek());
    15             }
    16 
    17             stackNum.Push(value);
    18         }
    19 
    20         public int Pop()
    21         {
    22             stackMin.Pop();
    23 
    24             return stackNum.Pop();
    25         }
    26 
    27         public int Min()
    28         {
    29             return stackMin.Peek();
    30         }
    31     }
  • 相关阅读:
    懒加载 和 json
    [iOS]用instancetype代替id作返回类型有什么好处?
    (转)Objective-C语法之KVC使用
    UITableView 展示数据
    shopee
    防火墙
    vue项目开发技巧
    文件流
    vant
    node 使用
  • 原文地址:https://www.cnblogs.com/HuoAA/p/4803983.html
Copyright © 2011-2022 走看看