LeetCode 1710. 卡车上的最大单元数

题目

LeetCode 1710. 卡车上的最大单元数_第1张图片

思路

先排序(一个自定义函数排序)。

  1. 自定义函数:使用匿名函数。
  2. vector中的back:最后一个元素
class Solution {
public:
    int maximumUnits(vector<vector<int>>& boxTypes, int truckSize) 
    {
        int length = boxTypes.size();
        int width = boxTypes[0].size();
        sort(boxTypes.begin(), boxTypes.end(), [](vector<int>& a, vector<int>& b){return a.back() > b.back();});
        int units_total = 0;
        int box_total = 0;
        for(int i = 0; i < length && box_total < truckSize; ++i)
        {
            if(box_total + boxTypes[i][0] < truckSize)
            {
                box_total += boxTypes[i][0];
                units_total +=boxTypes[i][0]*boxTypes[i][1];
            }
            else
            {
                units_total += (truckSize - box_total)*boxTypes[i][1];
                box_total += boxTypes[i][0];
            }
        }
        return units_total;
    } 
};

你可能感兴趣的:(leetcode,leetcode,算法)