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

php网站如何做多语言百度网站大全旧版

php网站如何做多语言,百度网站大全旧版,淘宝客网站的建设,做360全景有什么网站最小栈 一、题目链接二、题目三、算法原理思路1:用一个变量存储最小元素思路2:双栈普通栈和最小栈 四、编写代码五、时间复杂度 一、题目链接 最小栈 二、题目 三、算法原理 栈用数组、链表实现都行,最主要的就是在能在常数时间内检索到最…

最小栈

  • 一、题目链接
  • 二、题目
  • 三、算法原理
    • 思路1:用一个变量存储最小元素
    • 思路2:双栈普通栈和最小栈
  • 四、编写代码
  • 五、时间复杂度

一、题目链接

最小栈

二、题目

在这里插入图片描述

三、算法原理

栈用数组、链表实现都行,最主要的就是在能在常数时间内检索到最小元素的栈,说明getMin是O(1)的接口。

思路1:用一个变量存储最小元素

用一个变量存储最小元素,push一个值就比较一下并且要判断是否要更新最小元素。但是若更新后再pop一下就会出问题,此时栈中最小元素也会发生改变,那么怎么更新呢?更新成什么数呢?遍历一遍栈吗,这样就是O(n)的接口了,与O(1)不符。

在这里插入图片描述

思路2:双栈普通栈和最小栈

采用双栈的方式来实现:普通栈(正常存取数据)和最小栈。

最小栈:若向普通栈中push的元素大于当前最小栈中的栈顶元素,就不用往最小栈中push;若向普通栈中push的元素小于等于当前最小栈中的栈顶元素或者最小栈为空,就向最小栈中push;getMin获取最小栈中的栈顶元素即可。

在这里插入图片描述

若再push一个与最小元素相等的元素,那么最小栈中是否也要push呢?—— 要。若没有push,普通栈pop元素-1,此时pop了最小元素,要更新最小值最小栈也pop了,此时最小值理应还是-1而不是1。所以,push的元素比最小栈栈顶元素小或相等,minst都要push这个元素。

在这里插入图片描述

当前栈中最小元素是-1,若pop元素7后,最小元素还是-1,此时最小栈不用动。若再pop,此时删除的元素与最小栈中的栈顶元素相等,那么这时最小栈要pop,这时getMin就是1:

在这里插入图片描述

不需要写构造、析构、拷贝构造、赋值。类的两个成员变量是自定义类型的,不写构造,编译器自动生成的默认构造会自动调用两个成员变量的默认构造,拷贝构造、析构、赋值同理。

private:stack<int> _st;stack<int> _minst;

构造函数,像这样啥也不写或直接为空都是可以的:

在这里插入图片描述

因为显示写构造了,编译器就不会生成默认构造了。显示写构造,不管有没有写初始化列表,一个类都有初始化列表的。没有显示写初始化列表且没有给缺省值,对于自定义类型的成员会调用它的默认构造。

封装:
封装的简单形态:数据和方法放到类里面,想被看到的封装成公有,不想被看到的封装成私有。
另一层封装的体现:无需关心比如说像这道题的栈的底层是怎么实现的,就只管怎么用即可,知道了功能直接调用对应的功能。

四、编写代码

class MinStack {
public:MinStack(){}void push(int val) {_st.push(val);if (_minst.empty() || val <= _minst.top()) _minst.push(val);}void pop() {if (_st.top() == _minst.top()) _minst.pop();_st.pop();}int top() {return _st.top();}int getMin() {return _minst.top();}
private:stack<int> _st;stack<int> _minst;
};/*** Your MinStack object will be instantiated and called as such:* MinStack* obj = new MinStack();* obj->push(val);* obj->pop();* int param_3 = obj->top();* int param_4 = obj->getMin();*/

五、时间复杂度

所有接口的时间复杂度都是O(1)。

http://www.dtcms.com/wzjs/206374.html

相关文章:

  • 成都网站建设 3e网站建设搜索引擎关键词竞价排名
  • 德州哪个做网站做得好百度网盘搜索入口
  • 淘宝1688批发网官网真人seo点击平台
  • 外贸网站建设公司流程网站怎么提升关键词排名
  • 深圳网站搭建电话独立站建站平台有哪些
  • 商务网站建设线上推广渠道有哪些
  • 网站开发公司网站官网就业seo好还是sem
  • 戴尔公司网站建设seopeixun com cn
  • 网站设计有哪些专业术语拉人注册给佣金的app
  • 网站建设客户管理系统湖南长沙最新情况
  • 厦门市建设局新网站什么叫做网络营销
  • 沙井网站建设永久不收费免费的软件
  • 百度上公司做网站互联网广告营销
  • 阐述网站建设的步骤过程百度问答入口
  • 怎么在.Net中做团购网站今日热点头条
  • 浙江公铁建设工程有限公司网站杭州谷歌推广
  • 北京朝阳区网站建设公司网络推广主要是做什么工作
  • 有免费的网站做农家院宣传苏州seo关键词优化外包
  • 网站开发编辑器百度风云榜小说榜排名
  • 网站建设的费用入账互联网营销推广公司
  • 网站建设的企业网络营销与传统营销有哪些区别
  • wordpress 音乐主题模板下载上海百网优seo优化公司
  • linux做ppt下载网站挖掘关键词的工具
  • 电子商务网站功能页面seo推广任务小结
  • 做网站建设优化的公司排名谷歌seo网站推广
  • 营销型企业网站有哪些类型服装品牌营销策划方案
  • 如何进行网站分析关键词分析工具
  • 网站建设问答成都疫情最新情况
  • 做网站有哪些法规2023年7月疫情还会严重吗
  • 杭州制作网站公司台州优化排名推广