Re: [闲聊] 每日leetcode

楼主: eden6197 (:))   2024-08-03 21:48:33
155. MinStack
题目:
希望你完成一个stack
可以pop push
同时可以知道里面的最小值
思路:
因为要知道最小值
所以如果直接用一个stack纪录值
喔个monotonic stack纪录最小值的话
可能会出现一种情况
有重复数字出现
pop之后 数字没了
min值也被pop掉的情况
所以就改用再多一个vector
记录index对应的值
然后在stack里面就用值来push pop
不过看解答后发现 其实
minstack也可以让他==的时候也放进去
也会对就是了 因为就允许重复了
```cpp
class MinStack {
public:
vector<int> save;
vector<int> paper;
vector<int> minpaper;
MinStack() {
paper.clear();
save.clear();
minpaper.clear();
}
void push(int val)
{
save.push_back(val);
minpaper.push_back(save.size()-1);
while(minpaper.size()>1 && save[minpaper[minpaper.size()-1]] > save[mi
np
aper[minpaper.size()-2]])
{
minpaper.pop_back();
}
paper.push_back(save.size()-1);
}
void pop() {
if(minpaper.back() == paper.back())
{
minpaper.pop_back();
}
paper.pop_back();
}
int top()
{
return save[paper.back()];
}
int getMin()
{
return save[minpaper.back()];
}
};
```
作者: CanIndulgeMe (CIM)   2023-08-03 21:48:00
技术大神
作者: itoumashiro (佩可咪口爱的结晶)   2024-08-03 21:49:00
斜杠鸡哥
作者: sustainer123 (caster)   2024-08-03 21:50:00
鸡哥要进姑姑噜了
作者: DJYOMIYAHINA (通通打死)   2024-08-03 21:53:00
大师...
作者: nh60211as   2024-08-03 21:53:00
大师
作者: NCKUEECS (小惠我婆)   2024-08-03 22:02:00
又会做菜又会刷题
作者: WindSpread (阳だまりの诗)   2024-08-03 22:21:00
导致程序出包了

Links booklink

Contact Us: admin [ a t ] ucptt.com