Skip to content

Commit d6766a5

Browse files
authored
Create maximum-number-of-eaten-apples.cpp
1 parent 7a44860 commit d6766a5

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Time: O(nlogn)
2+
// Space: O(n)
3+
4+
class Solution {
5+
public:
6+
int eatenApples(vector<int>& apples, vector<int>& days) {
7+
priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> min_heap;
8+
int result = 0;
9+
for (int i = 0; i < size(apples) || !empty(min_heap); ++i) {
10+
if (i < size(apples) && apples[i]) {
11+
min_heap.emplace(i + days[i], i);
12+
}
13+
while (!empty(min_heap) &&
14+
(min_heap.top().first <= i || apples[min_heap.top().second] == 0)) {
15+
min_heap.pop();
16+
}
17+
if (!empty(min_heap)) {
18+
--apples[min_heap.top().second];
19+
++result;
20+
}
21+
}
22+
return result;
23+
}
24+
};

0 commit comments

Comments
 (0)