每日一题:【LeetCode】1710. 卡车上的最大单元数
admin
2024-01-21 03:29:20

目录

  • 题目
  • 题解

题目

请你将一些箱子装在一辆卡车上。给你一个二维数组 boxTypes ,其中 boxTypes[i] = [numberOfBoxesi,numberOfUnitsPerBoxi] :

numberOfBoxesi 是类型 i 的箱子的数量。 numberOfUnitsPerBoxi 是类型 i 每个箱子可以装载的单元数量。
整数 truckSize 表示卡车上可以装载箱子的最大数量 。只要箱子数量不超过 truckSize,你就可以选择任意箱子装到卡车上。

返回卡车可以装载单元的最大总数。

示例 1:
输入:boxTypes = [[1,3],[2,2],[3,1]], truckSize = 4
输出:8
解释:箱子的情况如下:

  • 1 个第一类的箱子,里面含 3 个单元。
  • 2 个第二类的箱子,每个里面含 2 个单元。
  • 3 个第三类的箱子,每个里面含 1 个单元。
    可以选择第一类和第二类的所有箱子,以及第三类的一个箱子。
    单元总数 = (1 * 3) + (2 * 2) + (1 * 1) = 8

示例 2:
输入:boxTypes = [[5,10],[2,5],[4,7],[3,9]], truckSize = 10
输出:91

提示:

1 <= boxTypes.length <= 1000
1 <= numberOfBoxesi, numberOfUnitsPerBoxi <= 1000
1 <= truckSize <= 106

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/maximum-units-on-a-truck
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解

要求卡车可以装载单元的最大总数,很容易想到先装单元数量大的箱子,不够再装单元数量小一点的箱子,直至箱子数量达到truckSize
于是要做的就是对boxTypes数组进行排序,按照numberOfUnitsPerBoxi进行降序排列

class Solution:def maximumUnits(self, boxTypes: List[List[int]], truckSize: int) -> int:boxTypes.sort(key=lambda x: x[1],reverse=True)sum=0for i in boxTypes:if truckSize>=i[0]:truckSize-=i[0]sum+=i[1]*i[0]else:sum+=i[1]*truckSizebreakreturn sum

相关内容

热门资讯

湖北二本院校名单和排名最新或2...  最新或2023(历届)高考越来越近不仅考试忙家长也忙,忙着帮助孩子选大学。到底给孩子选哪个大学好哪...
湖北省三本大学名单和排名最新或...  为了满足我国两岸四地高考考生及家长了解湖北省高校的办学水平和办学实力,艾瑞深中国校友会网最新发布最...
湖北艺术类大学排名最新或202...  最新或2023(历届)高考一日日临近,又到了一年一度的高校招生季,要想走好高考的第一步,就必须要了...
湖北体育类大学排名最新或202...   最新或2023(历届)高考一日日临近,又到了一年一度的高校招生季,要想走好高考的第一步,就必须要...
最新或2023(历届)湖北本科... 为了满足我国两岸四地高考考生及家长了解湖北省高校的办学水平和办学实力,艾瑞深中国校友会网最新发布最新...