Problem: 1710. 卡车上的最大单元数
每次选择unit数量最多的box, 所以首先排序的,排序以后累加计算就行了
Code
class Solution { public: static bool comp(vector<int>& a, vector<int>& c) { return a[1] > c[1]; } int maximumUnits(vector<vector<int>>& boxTypes, int truckSize) { sort(boxTypes.begin(), boxTypes.end(), comp); int sum = 0, now, i = 0, n = boxTypes.size(); while(truckSize > 0 && i < n) { sum += boxTypes[i][1] * boxTypes[i][0]; truckSize -= boxTypes[i][0]; i++; } if(truckSize < 0) sum += boxTypes[i-1][1] * truckSize; return sum; } };