前往
大廳
主題

LeetCode - 1710. Maximum Units on a Truck 解題心得

Not In My Back Yard | 2021-09-18 00:00:01 | 巴幣 0 | 人氣 410

題目連結:


題目意譯:
你被指派去放若干數量的箱子到一台卡車上。你被給定一個 2D 陣列 boxTypes ,其中 boxTypes[i] = [numberOfBoxesi, numberOfUnitsPerBoxi]:
numberOfBoxesi 為種類 i 的箱子之數量。
numberOfUnitsPerBoxi 為種類 i 的每個箱子所含有的單元數量。

你同時也被給定一整數 truckSize ,其代表著卡車上能放的最大箱子數。

回傳卡車上能放的最大單元總數量。

限制:
1 ≦ boxTypes.length ≦ 1000
1 ≦ numberOfBoxesi 、 numberOfUnitsPerBoxi ≦ 1000
1 ≦ truckSize ≦ 10 ^ 6



範例測資:
範例 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


解題思維:
因為根本不用考慮箱子的大小,所以要使單元越多的話,就是挑裝越多單元的箱子即可。

因此我們可以將所有種類按照每箱子單元數由大排到小,然後從單元多的開始挑起直到我們挑了 truckSize 個箱子或是所有箱子都被我們拿走為止。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作