简单的贪心排序即可。
class Solution {
public:
int maximumUnits(vector<vector<int>>& boxTypes, int truckSize) {
int ans=0;
sort(boxTypes.begin(),boxTypes.end(),[&](const vector<int> &a,const vector<int> &b){
return a[1]>b[1];
});
for(auto &p:boxTypes){
int t=min(p[0],truckSize);
ans+=t*p[1];
truckSize-=t;
}
return ans;
}
};
时间复杂度:O(nlogn)
空间复杂度:O(1)