博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[剑指Offer] 20.包含min函数的栈
阅读量:5262 次
发布时间:2019-06-14

本文共 1177 字,大约阅读时间需要 3 分钟。

题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。

【思路1】两个栈Stack和Min,Stack为当前栈中元素,Min为与Stack中元素一一对应的当前栈最小值。

1 class Solution 2 { 3 public: 4     stack
Stack; 5 stack
Min; 6 void push(int value) 7 { 8 Stack.push(value); 9 if(!Min.empty() && Min.top() < value)  10 value = Min.top();11 Min.push(value);12 }    13 void pop()14 {15 Stack.pop();16 Min.pop();17 }    18 int top()19 {20 return Stack.top();21 }    22 int min()23 {24 return Min.top();25 }26 };

【思路2】使用pair<int,int>从而实现只用一个栈来操作

1 class Solution 2 { 3 public: 4     stack< pair
> Stack; 5 int Min(int a,int b) 6 { 7 return (a < b)?a:b; 8 } 9 void push(int value)10 {11 Stack.push(pair
(value, Stack.empty()?value:Min(value,min())));12 }    13 void pop()14 {15 Stack.pop();16 }    17 int top()18 {19 return Stack.top().first;20 }    21 int min()22 {23 return Stack.top().second;24 }25 };

 

转载于:https://www.cnblogs.com/lca1826/p/6480560.html

你可能感兴趣的文章
2015/8/4 告别飞思卡尔,抛下包袱上路
查看>>
软件开发与模型
查看>>
161017、SQL必备知识点
查看>>
kill新号专题
查看>>
MVC学习系列——Model验证扩展
查看>>
C# GC 垃圾回收机制
查看>>
mysqladmin 修改和 初始化密码
查看>>
字符串
查看>>
vue2.x directive - 限制input只能输入正整数
查看>>
实现MyLinkedList类深入理解LinkedList
查看>>
自定义返回模型
查看>>
C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 客户端多网络支持
查看>>
HDU 4122
查看>>
Suite3.4.7和Keil u3自带fx2.h、fx2regs.h文件的异同
查看>>
打飞机游戏【来源于Crossin的编程教室 http://chuansong.me/account/crossincode 】
查看>>
[LeetCode] Merge Intervals
查看>>
【翻译自mos文章】当点击完 finishbutton后,dbca 或者dbua hang住
查看>>
Linux编程简介——gcc
查看>>
一种高效的序列化方式——MessagePack
查看>>
2019年春季学期第四周作业
查看>>