• lintcode12 带最小值操作的栈


    实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。

    你实现的栈将支持pushpop 和 min 操作,所有操作要求都在O(1)时间内完成。

    建一个栈helpStack,用来存放从开始到目前位置的最小值,

     1 /**
     2  * lintcode12:带最小值操作的栈
     3  * 狗剩的美丽家园
     4  * 2017年12月4日15:33:23
     5  */
     6 
     7 class MinStack {
     8 public:
     9     stack<int> mainStack;
    10     stack<int> helpStack;
    11     MinStack() {
    12         // do initialization if necessary
    13     }
    14 
    15     void push(int number) {
    16         // write your code here
    17         int top;
    18         mainStack.push(number);
    19 
    20         if (!helpStack.empty()) {
    21             top = helpStack.top();
    22         } else {
    23             top = number;
    24         }
    25 
    26         if (number > top) {
    27             helpStack.push(top);
    28         } else {
    29             helpStack.push(number);
    30         }
    31     }
    32 
    33     int pop() {
    34         // write your code here
    35         if (!mainStack.empty()) {
    36             int data = mainStack.top();
    37             mainStack.pop();
    38             helpStack.pop();
    39             return data;
    40         }
    41     }
    42 
    43     int min() {
    44         // write your code here
    45         if (!helpStack.empty()) {
    46             int data = helpStack.top();
    47             return data;
    48         }
    49     }
    50 };
  • 相关阅读:
    一个统计代码行数的简单方法
    关于string的对象引用
    mysql连接的一些问题。
    linux环境初始化 用户问题
    php null o false ''
    php支付宝在线支付接口开发教程【转】
    模拟支付宝服务窗环境
    ctags
    校验全球电话号码 正确性 库 正则表达式
    php短路与 短路或
  • 原文地址:https://www.cnblogs.com/gousheng/p/7977492.html
Copyright © 2020-2023  润新知