构建MinStack,实现一系列操作,包括push,pop,top,minstack(返回栈中最小元素)

思路:利用原始栈,不过这里需要两个栈,一个栈mystack用于存储元素,另一个栈otherstack元素由小到大排列

关键:mystack进行push(x)时,判断x与mystack的top()元素大小,始终将小的元素如栈minstack,这样mystack的top()始终是最小的

mystack的pop操作也是类似,当mystack与otherstack的top元素相同时,两个元素同时删除,否则只删除mystack的top元素

class MinStack { public:

stack<int> mystack;     stack<int> minstack;

void push(int x) {

    mystack.push(x);

    if(minstack.empty()||x<=minstack.top())

      minstack.push(x);     }

void pop() {

     if(!mystack.empty()){

       if(mystack.top()==minstack.top())

        minstack.pop();

        mystack.pop();

        }

       }

int top() {

    return mystack.top();     }

int getMin() {

    return minstack.top();

} };

转载于:https://www.cnblogs.com/wygyxrssxz/p/4486186.html

【leetcode】3 minstack相关推荐

  1. 【LeetCode】【HOT】155. 最小栈(辅助栈)

    [LeetCode][HOT]155. 最小栈 文章目录 [LeetCode][HOT]155. 最小栈 package hot;import java.util.ArrayDeque; import ...

  2. 【LeetCode】剑指 Offer 30. 包含min函数的栈

    [LeetCode]剑指 Offer 30. 包含min函数的栈 文章目录 [LeetCode]剑指 Offer 30. 包含min函数的栈 一.辅助栈 一.辅助栈 解题思路: 普通栈的 push() ...

  3. 【Leetcode】100. 相同的树

    题目 给定两个二叉树,编写一个函数来检验它们是否相同. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的. 示例 1: 输入: 1 1/ \ / \2 3 2 3[1,2,3], [1 ...

  4. 【leetcode】85. Maximal Rectangle 0/1矩阵的最大全1子矩阵

    1. 题目 Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing only 1 ...

  5. 【leetcode】486. Predict the Winner

    题目如下: Given an array of scores that are non-negative integers. Player 1 picks one of the numbers fro ...

  6. 【leetcode】132. Palindrome Partitioning II

    题目如下: 解题思路:本题是[leetcode]131. Palindrome Partitioning的升级版,要求的是求出最小cuts,如果用[leetcode]131. Palindrome P ...

  7. 【leetcode】86. Partition List

    题目如下: Given a linked list and a value x, partition it such that all nodes less than x come before no ...

  8. 【Leetcode】103. 二叉树的锯齿形层次遍历

    题目 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 ...

  9. 【Leetcode】79.单词搜索

    题目 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水平相邻或垂直相邻的单元格.同一个单元格 ...

最新文章

  1. 视频写操作,通道分离与合并
  2. 第十八 django及ORM操作
  3. Vista OS 中添加网络中的非Vista OS共享的打印机
  4. How far away ? HDU - 2586
  5. 如此理解面向对象编程
  6. sasl java_javaSASL_SSL帐号密码方式访问kafka
  7. Linux文件查看/编辑方法介绍
  8. 401 binary watch
  9. x264函数调用关系图
  10. 进程 线程 多进程 多线程 父进程 子进程
  11. orchard文档之-搜索和索引
  12. php 重定向 post,使用Jquery post时PHP不会重定向
  13. 2018清华计算机类专业录取分数线,清华大学2018-2019年各省各专业录取分数线
  14. java+垃圾回收器+的功能_JAVA-JVM 垃圾回收器
  15. 《算法图解》第九章 动态规划
  16. oracle查询sql保留小数点前0,去掉小数位后末尾的0
  17. python异步教程_Python开发异步任务Celery的使用教程!
  18. 2021-09-03din 与dien
  19. 基于PLC远程监控,PLC远程运维,PLC远程调试的系统软件开发方案
  20. 《纳什均衡与博弈论》纳什博弈论及对自然法则的研究

热门文章

  1. 对序列连续计算平均数和方差
  2. 解决maltab的中文和英文字体问题,中文乱码
  3. poj 3349 雪花
  4. [YTU]_2907 (类重载实现矩阵加法)
  5. dataframe的multiIndex在次级index上做筛选
  6. Numpy.array矩阵百分制化(比例化)
  7. [笔记]filter,空字符,0,None都是False应用
  8. img文件解包工具_使用tar归档命令,就不怕文件多!
  9. JavaScript之创建对象的模式
  10. Dell 笔记本的 BIOS设置 USB Wake Support 的设置