《剑指offer》-包含min函数的栈

本文介绍了一种使用两个栈来实现带有最小值查询功能的数据结构的方法。通过维护两个栈,一个用于存储数据元素,另一个用于跟踪当前最小值,这种方法能够在常数时间内完成压栈、弹栈及获取最小值的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++

复制代码
 1 class Solution {
 2 public:
 3     void push(int v) {
 4         int m = s1.empty() ? v : this->min();
 5         m = m < v ? m : v;
 6         s1.push(v);
 7         s2.push(m);
 8     }
 9     void pop() {
10         s1.pop();
11         s2.pop();
12     }
13     int top() {
14         return s1.top();
15     }
16     int min() {
17         return s2.top();
18     }
19 private:
20     stack<int> s1;
21     stack<int> s2;
22 };
复制代码

 


本文转自ZH奶酪博客园博客,原文链接:http://www.cnblogs.com/CheeseZH/p/5113175.html,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值