力扣 面试题 03.02. 栈的最小值 双栈
发布日期:2021-11-05 06:59:31
浏览次数:20
分类:技术文章
本文共 1443 字,大约阅读时间需要 4 分钟。
思路:搞个双栈,一个栈就做正常的操作,另外一个栈搞成单调非增的即可。有两种实现方式。class MinStack { public: /** initialize your data structure here. */ MinStack() { } void push(int x) { s.push(x); if(MIN.empty()||x<=MIN.top()) MIN.push(x); } void pop() { //第一种 pop时要判断 if(s.top()==MIN.top()) MIN.pop(); s.pop(); } int top() { return s.top(); } int getMin() { return MIN.top(); }private: //正常的栈 stack s; //单调非升栈 stack MIN;};/** * Your MinStack object will be instantiated and called as such: * MinStack* obj = new MinStack(); * obj->push(x); * obj->pop(); * int param_3 = obj->top(); * int param_4 = obj->getMin(); */
class MinStack { public: /** initialize your data structure here. */ MinStack() { } void push(int x) { s.push(x); if(MIN.empty()) MIN.push(x); else MIN.push(min(x,MIN.top())); } void pop() { s.pop(); MIN.pop(); } int top() { return s.top(); } int getMin() { return MIN.top(); }private: //正常的栈 stack s; //单调非升栈 stack MIN;};/** * Your MinStack object will be instantiated and called as such: * MinStack* obj = new MinStack(); * obj->push(x); * obj->pop(); * int param_3 = obj->top(); * int param_4 = obj->getMin(); */
转载地址:https://blog.csdn.net/xiji333/article/details/107968926 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年03月30日 14时22分25秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
CRM_ORDER_PR_ASSIGN_SELECT_CB
2019-04-27
SAP CRM One Order old design in index table
2019-04-27
SAP GraphQL console UI的实现原理
2019-04-27
SAP CRM的user status和system status
2019-04-27
生成SAP Leonardo API Access Token的python代码
2019-04-27
如何判断一个SAP CRM UI能否被扩展
2019-04-27
如何判断一个SAP CRM UI能否被扩展
2019-04-27
Spring框架里注解@Autowired的工作原理
2019-04-27
Java注解@Cacheable的工作原理
2019-04-27
Java JDK目录下的jmap和jhat工具的使用方式
2019-04-27
使用Chrome开发者工具研究JavaScript的垃圾回收机制
2019-04-27
Chrome开发者工具里的一个隐藏技能:chrome://net-internals
2019-04-27
JavaScript ES6 Fetch API时需要注意的一个Cookie问题
2019-04-27