剑指Offer之 - 包含min函数的栈
来源:互联网 发布:apt get 修改源码 编辑:程序博客网 时间:2024/04/29 15:34
题目:
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。
在该栈中,调用min,push,pop函数的世界复杂度都是O(1)。
思路:
维护一个辅助栈s2,用来存储当前栈中的最小元素
比如栈s1 :<2,4,3,1,5> ,辅助栈s2就是: <2,2,2,1,1>
代码:
#include<iostream>#include <stack>using namespace std;//功能:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。//在该栈中,调用min,push,pop函数的世界复杂度都是O(1)。//思路:维护一个辅助栈s2,用来存储当前栈中的最小元素//比如栈s1 :<2,4,3,1,5> ,辅助栈s2就是: <2,2,2,1,1>struct StackWithMin{stack<int> s1;stack<int> s2;void push1(int val){s1.push(val);if(s2.empty() || val <= s2.top())s2.push(val);else{s2.push(s2.top());}}int min(){if(!s2.empty())return s2.top();elsereturn -1;}void pop1(){if(!s1.empty() && !s2.empty()){s1.pop();s2.pop();}}};int main(){StackWithMin obj;obj.push1(4);obj.push1(2);obj.push1(3);obj.push1(1);cout<<obj.min()<<endl;obj.pop1();cout<<obj.min()<<endl;}
0 0
- 剑指Offer之包含min函数的栈
- 剑指Offer之 - 包含min函数的栈
- 剑指offer系列之十九:包含min函数的栈
- 【剑指offer】之包含min函数的栈
- 码农小汪-剑指Offer之18-包含min函数的栈
- 剑指offer系列之19:包含min函数的栈
- 剑指offer(十七)之包含min函数的栈
- 剑指offer 之 包含min函数的栈
- 剑指offer之十七---包含min函数的栈
- 【剑指offer】包含min函数的栈
- 剑指offer--包含min函数的栈
- 剑指Offer-->包含min函数的栈
- 《剑指offer》包含min函数的栈
- 剑指offer - 包含min函数的栈
- 剑指offer-包含min函数的栈
- 剑指offer:包含min函数的栈
- 包含min函数的栈|剑指offer
- 剑指offer-包含min函数的栈
- Java中创建线程的两种方法
- perl unicode全攻略
- Linux Kernel 4.0.2
- WPF 4.5和C#(4.2)——属性验证
- C++ Primer第四版习题--4.28
- 剑指Offer之 - 包含min函数的栈
- Runable和thread的区别(多线程必须用Runable)
- TCP服务器端和客户端程序设计
- eMMC介绍
- How to Create a Secure Login Script in PHP and mySQL
- 【Unity3d】学习笔记(11)——处理CSV文件
- 编辑器材质球的修改
- 第40课作业第二题
- [nginx源码分析]location划分