IMWeb提升营Day4 | 训练题20:包含min函数的栈
来源:互联网 发布:林肯mac 编辑:程序博客网 时间:2024/06/05 04:43
题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 解读:实现一个栈,能够得到栈最小元素的min函数,要求复杂度为O(1)
思路
/* * 思路:用两个栈结构来完成这个功能,用一个栈data保存数据,用另外一个栈min保存依次入栈最小的数 * 比如,data中依次入栈,5, 4, 3, 8, 10, 11, 12, 1 则min依次入栈,5, 4, 3,no,no, no, no, 1 * no代表此次不入栈 * 每次入栈的时候,如果入栈的元素比min中的栈顶元素小或等于则入栈,否则不入栈。 */class Solution {public: stack<int> dataStack; stack<int> minStack; void push(int value) { dataStack.push(value); if(minStack.empty()){ minStack.push(value); }else{ if(minStack.top() > value){ minStack.push(value); } } } void pop() { if(!minStack.empty() && minStack.top() == dataStack.top()){ minStack.pop(); } dataStack.pop(); } int top() { return dataStack.top(); } int min() { return minStack.top(); }};
阅读全文
0 0
- IMWeb提升营Day4 | 训练题20:包含min函数的栈
- IMWeb提升营Day4 | 训练题21:栈的压入、弹出序列
- IMWeb提升营Day4 | 训练题19:顺时针打印矩阵
- IMWeb提升营Day4 | 训练题23:二叉搜索树的后序遍历序列
- IMWeb提升营Day4 | 训练题24:二叉树中和为某一值的路径
- IMWeb提升营Day4
- IMWeb提升营Day4 | 训练题22:从上往下打印二叉树
- IMWeb提升营 —Day4
- IMWeb提升营Day5 | 训练题27:字符串的排列
- IMWeb小白训练营DAY4任务
- IMWeb提升营Day1 | 训练题2:字符串空格替换
- IMWeb提升营Day1 | 训练题4:重建二叉树
- IMWeb提升营Day2 | 训练题8:跳台阶
- IMWeb提升营Day2 | 训练题9:变态跳台阶
- IMWeb提升营Day2 | 训练题10:矩形覆盖
- IMWeb提升营Day3 | 训练题15:反转链表
- IMWeb提升营Day6 | 训练题33:丑数
- IMWeb提升营Day7 | 训练题39:平衡二叉树
- Java创建对象的方法清单 —— 原来还可以这样创建对象
- 搭建hibernate 环境
- Shell中的变量
- 1437 [CA1006]The area of triangle
- bzoj3048[Usaco2013 Jan]Cow Lineup 单调队列
- IMWeb提升营Day4 | 训练题20:包含min函数的栈
- ubuntu14.04下Qt5.8的安装
- Java关键词解读之abstract
- Linux设备驱动之Hotplug_uevent机制
- 1002. 写出这个数 (20)
- Hadoop遇坑填坑汇总
- 1438 [CA1002]Circle
- workbench导出mysql5.6数据出错
- 链表操作