当前位置: 首页 > wzjs >正文

网站建设与维护中国出版社html网页设计代码作业大一

网站建设与维护中国出版社,html网页设计代码作业大一,响应式网站开发设计师,家谱用网站做题目 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。i…

题目

设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。

实现 MinStack 类:

  • MinStack() 初始化堆栈对象。
  • void push(int val) 将元素val推入堆栈。
  • void pop() 删除堆栈顶部的元素。
  • int top() 获取堆栈顶部的元素。
  • int getMin() 获取堆栈中的最小元素。

示例

示例 1:

输入:
["MinStack","push","push","push","getMin","pop","top","getMin"]
[[],[-2],[0],[-3],[],[],[],[]]输出:
[null,null,null,null,-3,null,0,-2]解释:
MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin();   --> 返回 -3.
minStack.pop();
minStack.top();      --> 返回 0.
minStack.getMin();   --> 返回 -2.

分析

我们可以使用两个栈来实现,一个栈用于存储正常的元素,另一个栈用于存储当前栈中的最小元素。

辅助栈

push(int val) 方法

  • 首先将元素 val 压入 dataStack
  • 然后检查 minStack 是否为空或者 val 是否小于等于 minStack 的栈顶元素。如果满足条件,则将 val 也压入 minStack。这样可以保证 minStack 的栈顶元素始终是当前栈中的最小元素。

pop() 方法

  • 首先检查 dataStack 是否为空。
  • 如果 dataStack 不为空,检查 dataStack 的栈顶元素是否等于 minStack 的栈顶元素。如果相等,说明要弹出的元素是当前栈中的最小元素,需要同时将 minStack 的栈顶元素弹出。
  • 最后将 dataStack 的栈顶元素弹出。

top() 方法

  • 检查 dataStack 是否为空。
  • 如果不为空,返回 dataStack 的栈顶元素;否则,简单返回 -1 表示栈为空。

getMin() 方法

  • 检查 minStack 是否为空。
  • 如果不为空,返回 minStack 的栈顶元素;否则,简单返回 -1 表示栈为空。

时间复杂度:O(1)

空间复杂度:O(n)

class MinStack {
private:std::stack<int> dataStack;  // 存储正常元素的栈std::stack<int> minStack;   // 存储最小元素的栈
public:MinStack() {// 构造函数,初始化两个栈}void push(int val) {dataStack.push(val);if (minStack.empty() || val <= minStack.top()) {minStack.push(val);}}void pop() {if (!dataStack.empty()) {if (dataStack.top() == minStack.top()) {minStack.pop();}dataStack.pop();}}int top() {if (!dataStack.empty()) {return dataStack.top();}return -1;  // 这里简单返回 -1 表示栈为空,实际使用中可根据需求处理}int getMin() {if (!minStack.empty()) {return minStack.top();}return -1;  // 这里简单返回 -1 表示栈为空,实际使用中可根据需求处理}
}; 
http://www.dtcms.com/wzjs/788309.html

相关文章:

  • 制作网站哪家便宜网站开发设计选题背景
  • 郑州企业建设网站技术wordpress list
  • 高校网站站群wordpress手机版app导航
  • 东莞网站建设基本流程网站开发ppt方案模板
  • 单页网站产品wordpress 列表模板
  • 网站制作自己做网站建设以及运营方面
  • 7块钱建购物网站抖音seo关键词优化
  • 网站建设名列前茅交友软件
  • 个人网站做淘宝客违规网站备案成功后该怎么做
  • 制作网站如何选择主机三亚网上商城
  • 网站搭建流程图注册科技有限公司可以做网站吗
  • 低价网站建设机构开源企业建站系统哪个好
  • 最早做美食团购的网站义乌电商培训班一般多少钱
  • 如何 做网站禹城网站定制
  • 做暧暖免费观看网站网站主域名是什么
  • 宝塔怎么做两个网站南宁 江苏建设工程信息网站
  • 谷歌云做网站在什么网站做推广
  • 网站如何编辑wordpress慢 google
  • 怎么查网站有没有做推广网站上传后
  • 导购网站模板asp源码打开网站
  • 用psd做的买书网站seo 网站文案模板
  • 重庆 建网站企业咨询合同
  • 哪个网站可以免费做H5个人养老保险查询
  • 南昌网站建设方式安顺 网站建设
  • 如何把代码放在网站首页教程公司官网制作价格
  • 一个优秀的网站wordpress 手机 体验
  • 最有效的网站推广公司wordpress响应式网站
  • 电子科技网站建设大气好看的网站
  • 免费电商网站模板网络推广怎样做
  • 手机好看网站模板免费下载济宁网站建设 中企动力临沂