最小栈的实现(设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。)
生活随笔
收集整理的這篇文章主要介紹了
最小栈的实现(设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
最小棧的實(shí)現(xiàn)
思路
優(yōu)化版本
class MinStack { public:/** initialize your data structure here. */MinStack() {}void push(int x) {left.push(x);if (right.empty() || x <= right.top()){right.push(x);}}void pop() {int top = left.top(); //先讓左邊出棧并記錄元素left.pop(); if (top == right.top()){ //如果左邊出棧得元素等于右邊棧頂元素,右邊才出right.pop();}}int top() {return left.top();}int getMin() {return right.top();}stack<int> left; //存正長(zhǎng)的數(shù)據(jù)stack<int> right; //存最小的數(shù)據(jù) };總結(jié)
以上是生活随笔為你收集整理的最小栈的实现(设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的小宝贝剧情介绍
- 下一篇: 再写循环队列----c++实现