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