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

最小栈 _ _

一:题目

二:思路

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

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

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

优化:

 解释:

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

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

三:代码(优化版本的)

解释:

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

因为

  • 不写构造函数

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

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

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

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

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

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

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

http://www.dtcms.com/a/57825.html

相关文章:

  • 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协议
  • 中级网络工程师面试题参考示例(3)
  • 使用 MyBatis XML 和 QueryWrapper 实现动态查询
  • 大模型信息整理
  • JDBC事务管理与DAO模式实践
  • 加餐 —— Spring Boot 项目转 Solon 项目工具
  • 电子学会—2024年月6青少年软件编程(图形化)四级等级考试真题——魔法门
  • 【玩转MySQL数据字典】MySQL数据字典与常用操作指令
  • visual studio中解决方案和项目的关系?如何在同一个解决方案中添加项目?
  • 前端使用XLSX实现Excel导入导出
  • 第二章---电力电子器件---《电力电子技术基础》笔记