File tree 1 file changed +10
-21
lines changed
1 file changed +10
-21
lines changed Original file line number Diff line number Diff line change 1
1
class Solution {
2
2
public:
3
3
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 ();
19
11
}
20
- if (mystack.empty ()) {
21
- mystack.push ({i, currentTemp});
22
- }
23
- result[i] = day == -1 ? 0 : day - i;
12
+ mystack.push ({temperatures[i], i});
24
13
}
25
-
26
- return result ;
14
+
15
+ return res ;
27
16
}
28
17
};
You can’t perform that action at this time.
0 commit comments