ToB企服应用市场:ToB评测及商务社交产业平台

标题: leetcode155. 最小栈 [打印本页]

作者: 我爱普洱茶    时间: 2024-6-21 05:00
标题: leetcode155. 最小栈
一、题目描述:

   计划一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。
  实现 MinStack 类:
  
  二、输入输出实例:

  
  1. <strong>输入:</strong>
  2. ["MinStack","push","push","push","getMin","pop","top","getMin"]
  3. [[],[-2],[0],[-3],[],[],[],[]]
  4. <strong>输出:</strong>
  5. [null,null,null,null,-3,null,0,-2]
  6. <strong>解释:</strong>
  7. MinStack minStack = new MinStack();
  8. minStack.push(-2);
  9. minStack.push(0);
  10. minStack.push(-3);
  11. minStack.getMin();   --> 返回 -3.
  12. minStack.pop();
  13. minStack.top();      --> 返回 0.
  14. minStack.getMin();   --> 返回 -2.
复制代码
三、思绪解说:

   
          ①无论什么环境stack1都必要压栈。
          ②当stack2为空,或者stack2栈顶的元素和当前必要压栈的元素相等时,stack2执行压         栈操作。
  
          ①无论什么环境stack1都必要出栈。
          ②当stack2栈顶元素和stack1栈顶元素相等时,stack2执行出栈。
          ③当stack2不和stack1栈顶元素相等,分析要出栈的元素不是stack1栈中当前最小元素 
          那么这个元素可以直接弹出。
  
  四、C++代码:

  
  1. class MinStack {
  2.     stack<int> s1;
  3.     stack<int> s2;
  4. public:
  5.     MinStack()
  6.     {
  7.         //不用写,内置类型会自己走初始化列表
  8.     }
  9.    
  10.     void push(int val)
  11.     {
  12.         s1.push(val);//主栈压栈
  13.         if(s2.empty()||val<=s2.top())//辅栈如果为空,或者val小于辅栈栈顶元素
  14.                                      //辅栈压栈
  15.         {
  16.             s2.push(val);
  17.         }
  18.     }
  19.    
  20.     void pop()
  21.     {
  22.         if(s1.top()==s2.top())//如果主栈和辅栈的栈顶元素大小相等
  23.                               //辅栈出栈
  24.         {
  25.             s2.pop();
  26.         }
  27.         s1.pop();//主栈无论如何都出栈
  28.     }
  29.    
  30.     int top()//返回主栈的栈顶位置元素
  31.     {
  32.         return s1.top();
  33.     }
  34.    
  35.     int getMin()//返回辅栈的栈顶元素,也就是主栈最小元素
  36.     {
  37.         return s2.top();
  38.     }
  39. };
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4