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

深圳网站设计开发wordpress第一篇文章

深圳网站设计开发,wordpress第一篇文章,研究生网站建设,如何编写一个网站设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void pop() 删除堆栈顶部的元素。 int top() 获取堆栈顶部的元素。 int…

设计一个支持 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.

提示:

-231 <= val <= 231 - 1
pop、top 和 getMin 操作总是在 非空栈 上调用
push, pop, top, and getMin最多被调用 3 * 104 次

第一种:栈

class MinStack {// 数据栈,用于存储元素public Stack<Integer> data;// 最小值栈,用于存储当前栈内的最小值public Stack<Integer> min;// 构造函数,初始化两个栈public MinStack() {data = new Stack<Integer>();min = new Stack<Integer>();}// 元素入栈操作public void push(int val) {data.push(val); // 将元素压入数据栈// 如果最小值栈为空,或者新元素小于当前最小值栈顶元素if (min.empty() || val < min.peek()) {min.push(val); // 将新元素压入最小值栈} else {min.push(min.peek()); // 否则将当前最小值栈顶元素再次压入最小值栈,保持与数据栈元素个数一致}}// 元素出栈操作public void pop() {data.pop(); // 从数据栈中弹出一个元素min.pop();  // 同时从最小值栈中弹出一个元素,保持两个栈的同步}// 获取栈顶元素public int top() {return data.peek(); // 返回数据栈的栈顶元素,不出栈}// 获取当前栈内的最小值public int getMin() {return min.peek(); // 返回最小值栈的栈顶元素,即当前栈内的最小值}
}

第二种:数组自定义栈

class MinStack {public final int MAXN = 8001; // 定义最大容量int[] data; // 存储元素的数组int[] min; // 存储当前最小元素的数组int size; // 栈的大小public MinStack() {data = new int[MAXN]; // 初始化data数组min = new int[MAXN]; // 初始化min数组size = 0; // 初始化栈大小}// 入栈操作public void push(int val) {data[size] = val; // 将元素放入data数组if (size == 0 || val < min[size - 1]) {min[size] = val; // 更新min数组,如果val比前一个最小值小} else {min[size] = min[size - 1]; // 如果val不是最小值,保持原最小值}size++; // 增加栈大小}// 出栈操作public void pop() {size--; // 减少栈大小,相当于出栈}// 获取栈顶元素public int top() {return data[size - 1]; // 返回栈顶元素}// 获取栈中的最小元素public int getMin() {return min[size - 1]; // 返回当前最小元素}
}

https://leetcode.cn/problems/min-stack/description/

参考左程云老师算法系列

http://www.yayakq.cn/news/850377/

相关文章:

  • 了解网络营销相应的网站北京诚通新新建设有限公司网站
  • 管理网站用什么系统好网站建设技术服务的方式是什么意思
  • 清远网站推广优化公司新媒体平台有哪些?
  • 柳市网站优化朱晓宇 大庆 seo 网站建设 北京
  • 建设银行网站字体简单大气的科技公司名字
  • 贵州省铁路建设办公室网站建立网站最先进的互联网技术有哪些
  • 如何进行网站性能优化页面优化的方法
  • 网站建设课程设计要求钉钉企业邮箱收费标准
  • 网站可以不进行icp备案吗西安长安网站建设制作
  • 信息发布网站模板下载.net简单网站开发视频教程
  • 兰亭集势网站模板提升审美的网站
  • 网站建设swot多语种网站
  • 沧州市网站建设天津哪家网站设计公司好
  • 网站导航界面宜宾网站建设哪家好
  • 广州seo公司长沙百度seo代理
  • 怎么做付款下载网站wordpress主题 视频教程
  • 网站建设优化广告流量游戏网页在线玩
  • 重庆网站建设技术网上超市有哪些平台
  • 安监局网站建设南京广告公司地址
  • 自己做的网站加载不出验证码如何做一个小程序商城
  • 怎么给网站做百度坐标定位网站开发技术历史
  • jsp网站开发如何把自横批排平安企业邮箱登录入口
  • 网站建设主要工作由哪些百度seo查询
  • 网站要做几个备案wordpress 主题漏洞
  • 鲅鱼圈网站制作免费的crm软件系统
  • 农家乐网站建设方案可以做代销的网站都有哪些
  • 做网站推广广告自建房设计网站推荐
  • 海南省城乡建设部网站首页it运维需要学什么
  • 深圳企业网站建设公司哪家好怎么做响应式网站
  • 备案系统网站制作网站的步骤和方法