Skip to content

Commit 0bdefea

Browse files
authored
Update Daily Temperatures.cpp
1 parent b1a3ac6 commit 0bdefea

File tree

1 file changed

+10
-21
lines changed

1 file changed

+10
-21
lines changed

Diff for: cpp/731-740/Daily Temperatures.cpp

+10-21
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,17 @@
11
class Solution {
22
public:
33
vector<int> dailyTemperatures(vector<int>& temperatures) {
4-
vector<int> result(temperatures.size());
5-
6-
stack<pair<int, int>> mystack; // day, temp
7-
8-
for (int i = temperatures.size() - 1; i >= 0; i--) {
9-
int currentTemp = temperatures[i];
10-
int day = -1;
11-
while (!mystack.empty()) {
12-
if (currentTemp >= mystack.top().second) {
13-
mystack.pop();
14-
} else {
15-
day = mystack.top().first;
16-
mystack.push({i, currentTemp});
17-
break;
18-
}
4+
vector<int> res(temperatures.size(), 0);
5+
stack<pair<int, int>> mystack;
6+
7+
for (int i = 0; i < temperatures.size(); i++) {
8+
while (!mystack.empty() && mystack.top().first < temperatures[i]) {
9+
res[mystack.top().second] = i - mystack.top().second;
10+
mystack.pop();
1911
}
20-
if (mystack.empty()) {
21-
mystack.push({i, currentTemp});
22-
}
23-
result[i] = day == -1 ? 0 : day - i;
12+
mystack.push({temperatures[i], i});
2413
}
25-
26-
return result;
14+
15+
return res;
2716
}
2817
};

0 commit comments

Comments
 (0)