题目
解法:贪心
将袋子的剩余空间从小到大的排序,greedy的填满袋子即可
class Solution {
public:
int maximumBags(vector<int>& capacity, vector<int>& rocks, int additionalRocks) {
int n = capacity.size();
vector<int> remain(n,0);
for(int i=0;i<n;i++){
remain[i] = capacity[i] - rocks[i];
}
sort(remain.begin(),remain.end());
int ans = 0;
for(int i=0;i<n;i++){
if(remain[i] == 0){
ans++;
}else{
additionalRocks -= remain[i];
ans++;
if(additionalRocks <= 0) break;
}
}
if(additionalRocks < 0) ans--;
return ans;
}
};