【leetcode】3 minstack
构建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相关推荐
- 【LeetCode】【HOT】155. 最小栈(辅助栈)
[LeetCode][HOT]155. 最小栈 文章目录 [LeetCode][HOT]155. 最小栈 package hot;import java.util.ArrayDeque; import ...
- 【LeetCode】剑指 Offer 30. 包含min函数的栈
[LeetCode]剑指 Offer 30. 包含min函数的栈 文章目录 [LeetCode]剑指 Offer 30. 包含min函数的栈 一.辅助栈 一.辅助栈 解题思路: 普通栈的 push() ...
- 【Leetcode】100. 相同的树
题目 给定两个二叉树,编写一个函数来检验它们是否相同. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的. 示例 1: 输入: 1 1/ \ / \2 3 2 3[1,2,3], [1 ...
- 【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 ...
- 【leetcode】486. Predict the Winner
题目如下: Given an array of scores that are non-negative integers. Player 1 picks one of the numbers fro ...
- 【leetcode】132. Palindrome Partitioning II
题目如下: 解题思路:本题是[leetcode]131. Palindrome Partitioning的升级版,要求的是求出最小cuts,如果用[leetcode]131. Palindrome P ...
- 【leetcode】86. Partition List
题目如下: Given a linked list and a value x, partition it such that all nodes less than x come before no ...
- 【Leetcode】103. 二叉树的锯齿形层次遍历
题目 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如: 给定二叉树 [3,9,20,null,null,15,7], 3 ...
- 【Leetcode】79.单词搜索
题目 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻"单元格是那些水平相邻或垂直相邻的单元格.同一个单元格 ...
最新文章
- 视频写操作,通道分离与合并
- 第十八 django及ORM操作
- Vista OS 中添加网络中的非Vista OS共享的打印机
- How far away ? HDU - 2586
- 如此理解面向对象编程
- sasl java_javaSASL_SSL帐号密码方式访问kafka
- Linux文件查看/编辑方法介绍
- 401 binary watch
- x264函数调用关系图
- 进程 线程 多进程 多线程 父进程 子进程
- orchard文档之-搜索和索引
- php 重定向 post,使用Jquery post时PHP不会重定向
- 2018清华计算机类专业录取分数线,清华大学2018-2019年各省各专业录取分数线
- java+垃圾回收器+的功能_JAVA-JVM 垃圾回收器
- 《算法图解》第九章 动态规划
- oracle查询sql保留小数点前0,去掉小数位后末尾的0
- python异步教程_Python开发异步任务Celery的使用教程!
- 2021-09-03din 与dien
- 基于PLC远程监控,PLC远程运维,PLC远程调试的系统软件开发方案
- 《纳什均衡与博弈论》纳什博弈论及对自然法则的研究
热门文章
- 对序列连续计算平均数和方差
- 解决maltab的中文和英文字体问题,中文乱码
- poj 3349 雪花
- [YTU]_2907 (类重载实现矩阵加法)
- dataframe的multiIndex在次级index上做筛选
- Numpy.array矩阵百分制化(比例化)
- [笔记]filter,空字符,0,None都是False应用
- img文件解包工具_使用tar归档命令,就不怕文件多!
- JavaScript之创建对象的模式
- Dell 笔记本的 BIOS设置 USB Wake Support 的设置