简单的贪心排序即可。
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)
该博客讨论了一个使用贪心策略解决的最大装载问题。通过排序箱子类型并优先选择单位面积最大的箱子填充卡车,实现了时间复杂度为O(nlogn)、空间复杂度为O(1)的高效解决方案。
291

被折叠的 条评论
为什么被折叠?



