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

    题目描述

    定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
     
    思路:
    这个题是想得到一个时间复杂度为O(1)的min函数,所以应用一个辅助栈,压的时候,如果A栈的压入比B栈压入大,B栈不压,,,,小于等于,AB栈同时压入,出栈,如果,AB栈顶元素不等,A出,B不出。
     
     
    AC代码:
     1 class Solution {
     2 public:
     3     
     4     stack<int> stack1,stack2;
     5     
     6     void push(int value) {
     7         stack1.push(value);
     8         if(stack2.empty())
     9             stack2.push(value);
    10         else if(value<=stack2.top())
    11         {
    12             stack2.push(value);
    13         }
    14     }
    15     
    16     void pop() {
    17         if(stack1.top()==stack2.top())
    18             stack2.pop();
    19         stack1.pop();
    20         
    21     }
    22     
    23     int top() {
    24         return stack1.top();        
    25     }
    26     
    27     int min() {
    28         return stack2.top();
    29     } 
    30     
    31 };
  • 相关阅读:
    记账本开发第一天-补
    20200418-补
    20200411-补
    20200404-补
    20200328-补
    暴力解N皇后
    nN皇后递归
    Hanoi汉诺塔非递归栈解
    Hanoi汉诺塔递归
    JMMjmm模型
  • 原文地址:https://www.cnblogs.com/SeekHit/p/5774115.html
Copyright © 2011-2022 走看看