1710. Maximum Units on a Truck
仅供自己学习
思路:
如果我们按照每个箱子装载的单元数量降序排序,然后每次只要箱子数量小于tracksize就一直从大的获取加入。
代码:
1 class Solution { 2 public: 3 int maximumUnits(vector<vector<int>>& boxTypes, int truckSize) { 4 sort(boxTypes.begin(),boxTypes.end(),[](const auto& L,const auto& R){return L[1]>R[1];}); 5 int unit=0,sumnums=0; 6 for(auto a: boxTypes){ 7 if(truckSize<0) break; 8 unit=min(truckSize,a[0]); //取最小的是为了避免,该箱子数量大于剩余的trucksize的,所以每次都能保证取的数量符合 9 truckSize-=unit; 10 sumnums+=unit*a[1]; 11 } 12 return sumnums; 13 } 14 };