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

最小栈 _ _

一:题目

二:思路

解释:一个栈名为st,其用来正常的出入栈,一个栈名为minst,其的栈顶元素一定是最小的元素

入栈:第一个元素,两个栈一起入,后面再入栈,只有入栈的元素,小于minst的栈顶,minst才会入栈,反之入栈的元素大于等于minst的栈顶元素,则minst继续入自己的栈顶元素

出栈:出栈的时候,二者一起出,这才能让st的元素和minst同步

优化:

 解释:

入栈:第一个元素,两个栈一起入,后面再入栈,只有入栈的元素,小于等于minst的栈顶,minst才会入栈

出栈:只有st即将出栈的栈顶元素和minst的栈顶元素一样,后者才出栈

三:代码(优化版本的)

解释:

值得一提的是,改题目类中的构造函数什么都不写和直接删了都能过

因为

  • 不写构造函数

    • 编译器会生成默认构造函数。

    • 默认构造函数会调用成员变量的默认构造函数。

    • 对于 stack<int>,默认构造函数会初始化空栈。

  • 写了构造函数但内容为空

    • 编译器会调用你定义的构造函数。

    • 你定义的构造函数不会做任何额外的初始化操作。

    • 成员变量的默认构造函数仍然会被调用,初始化空栈。

相关文章:

  • set、LinkedHashSet和TreeSet的区别、Map接口常见方法、Collections 工具类使用
  • 03.08
  • 动态 SQL 的使用
  • Spark八股
  • 基于 Next.js(前端)和 FastAPI(后端)使用 WebSocket(满血版DeepSeek-R1回答)
  • 计算机组成原理
  • 九、结构体
  • 【C++】条件变量condition_variable(1)
  • P6412题解
  • 海量数据融合互通丨TiDB 在安徽省住房公积金监管服务平台的应用实践
  • 【项目】负载均衡式在线OJ
  • 强化学习和最优控制 - 知识图谱
  • 04.基于C++实现多线程TCP服务器与客户端通信
  • 数据结构(树)
  • 用套接字在网络中传送对象的时候为什么需要序列化?
  • ROS分布式部署通信
  • 【NLP 32、文本匹配任务 —— 深度学习】
  • 电子扫盲课(郑州大学北校区计协讲座第一讲)
  • 求最大公约数【C/C++】
  • LINUX网络基础 [五] - HTTP协议
  • 免费自助建站工具/福州关键词搜索排名
  • 做买东西的网站要多少钱/什么是seo和sem
  • 南昌疫情最新政策/兰州seo优化
  • 如何搭建php视频网站/啥都能看的浏览器
  • 淘宝客单页网站/网站快速优化排名app
  • 电商网站建设电话/旺道seo