This commit is contained in:
parent
39bb8ffc36
commit
676611e233
@ -10,10 +10,16 @@ vector<int> S0739::dailyTemperatures(vector<int>& temperatures) {
|
|||||||
// 栈中的元素为向量的下标
|
// 栈中的元素为向量的下标
|
||||||
// 向量下标对应的元素从栈底到栈顶单调递增
|
// 向量下标对应的元素从栈底到栈顶单调递增
|
||||||
stack<int> s;
|
stack<int> s;
|
||||||
s.push(0);
|
|
||||||
// 初始化 ans 中的所有元素为 0
|
// 初始化 ans 中的所有元素为 0
|
||||||
vector<int> ans(len, 0);
|
vector<int> ans(len, 0);
|
||||||
for (int i{1}; i < len; ++i) {
|
for (int i{0}; i < len; ++i) {
|
||||||
|
// 当栈为空时,直接入栈然后 continue
|
||||||
|
if (s.empty()) {
|
||||||
|
s.push(i);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// 当我们发现当前元素比栈顶元素大时,循环弹出
|
||||||
|
// 注意,是循环弹出,而不是 if 弹出
|
||||||
while (temperatures[i] > temperatures[s.top()]) {
|
while (temperatures[i] > temperatures[s.top()]) {
|
||||||
ans[s.top()] = i - s.top();
|
ans[s.top()] = i - s.top();
|
||||||
s.pop();
|
s.pop();
|
||||||
|
Loading…
Reference in New Issue
Block a user