博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
包含min函数的栈
阅读量:5035 次
发布时间:2019-06-12

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

题目描述

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
 
思路:用到两个栈:一个栈1全部压,一个栈2压入一个元素后,之后压的元素只能比之前的小于或者等于,这样一来最小的就是在栈2的栈顶,出栈的时候只有当栈1的栈顶元素和栈2的栈顶元素相同时,此时栈2出栈,最小的还是栈2的栈顶元素。
c++代码如下:
class Solution {public:         stack
stack1,stack2; void push(int value) { stack1.push(value); if(stack2.empty()) stack2.push(value); else if(value<=stack2.top()) { stack2.push(value); } } void pop() { if(stack1.top()==stack2.top()) stack2.pop(); stack1.pop(); } int top() { return stack1.top(); } int min() { return stack2.top(); } };

 

转载于:https://www.cnblogs.com/cstdio1/p/11237051.html

你可能感兴趣的文章
数学中余弦定理在搜索中的分类应用——新闻的分类
查看>>
操作系统 chapter2 操作系统运行环境
查看>>
DecimalFormat用法
查看>>
PMP - 项目管理思维导图
查看>>
实验五
查看>>
Docker 入门篇
查看>>
关于用wkwebview加载沙盒documents下html文件 模拟器可以,真机不行的解决方案
查看>>
RxJava系列5(组合操作符)
查看>>
Git常用命令
查看>>
几何编程题
查看>>
使用 Python 进行线程编程 线程的使用模式
查看>>
同步与异步 阻塞与非阻塞
查看>>
软件项目管理工具
查看>>
1.将控制器添加到 ASP.NET Core MVC 应用
查看>>
课题介绍
查看>>
浅谈-订阅发布模式
查看>>
均值与方差
查看>>
【★】KMP算法完整教程
查看>>
谈谈关键字new
查看>>
.Net小白的第一篇博客
查看>>