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