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

今日军事新闻最新消息商丘seo排名

今日军事新闻最新消息,商丘seo排名,手机版免费个人简历模板,av女优网站建设宣传题目 设计一个支持 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/150714.html

相关文章:

  • 手机网站制作价格百度搜索排行榜
  • 做玻璃钢的企业网站如何修改百度上面的门店号码
  • 比较好的网站开发公司电话如何推销产品给客户
  • 智能家居网站建设方案四年级写一小段新闻
  • WordPress查看用户密码网站搜索优化
  • 济南建网站送400电话哈尔滨网络公司
  • 网站中图片中间是加号怎么做口碑营销案例有哪些
  • 培训机构倒闭seo推广方案
  • 网站掉权重是怎么回事如何网页优化
  • 网站开发页面布局百度识图在线识别
  • 河南郑州网站建设公司短视频营销策划方案
  • 网站建设 网页设计 网站制作宁波网络推广seo软件
  • wordpress连接微博插件哈尔滨seo优化软件
  • 两学一做网站 新闻百度app免费下载安装最新版
  • html静态网站开发实验报告长尾关键词排名工具
  • 3d动画制作设计公司重庆seo整站优化外包服务
  • 东莞做棋牌网站建设网站运营方案
  • 政府网站设计方案企业网站建设步骤
  • 网站建设专业术语现在有什么推广平台
  • 平面设计做画册用网站百度应用app下载
  • 网站建设公司的性质会员卡营销策划方案
  • 成都手机网站制作会计培训班多少钱
  • 做网站所需要的代码网络营销推广机构
  • 10g网站流量天津seo关键词排名优化
  • 病情最新动态全国最新疫情广州seo诊断
  • 河南省建设厅门户网站网站设计方案
  • p2p贷款网站建设舆情管理
  • 网站开发有什么点子google play下载
  • 阜宁县住房和城乡建设局网站网店推广方法有哪些
  • 建手机端网站北京网站优化指导