Maximum Number of Eaten Apples LeetCode solution in C++

1
class Solution {
2
public:
3
int eatenApples(vector<int> &apples, vector<int> &days) {
4
ios_base::sync_with_stdio(0);
5
cin.tie(0);
6
priority_queue<int, vector<int>, greater<int>> p;
7
unordered_map<int, int> m;
8
int ans = 0;
9
int i = 0;
10
while (p.size() || i < days.size()) {
11
if (i < days.size() && apples[i] != 0 && days[i] != 0) {
12
m[days[i] + i] = apples[i];
13
p.push(days[i] + i);
14
}
15
while (p.size()) {
16
if (m[p.top()] != 0 && p.top() > i) break;
17
p.pop();
18
}
19
if (p.size()) {
20
ans++;
21
m[p.top()]--;
22
}
23
++i;
24
}
25
return ans;
26
}
27
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0