在给定卡车箱尺寸的情况下,找到可以装满卡车的最大单位数

IJ

此问题是LeetCode 1710(简易)问题的变体我想知道我的解决方案在时间和空间上的复杂性是什么,以及是否有更好的方法来解决这个问题。

问题:我们想根据卡车可以容纳多少个箱子(由truckSize给定)找到卡车可以容纳的最大产品数量。

变量(带有示例):

  • num = 3(产品数)
  • boxes = [1,2,3](每种产品的盒子数的整数列表)
  • unitSize = 3(仅代表unitPerBox列表的大小)
  • unitsPerBox = [3,2,1](代表每个包装盒中装箱数量的整数列表)
  • truckSize = 3(卡车可以携带的箱子数量)。

因此,在这个例子中,卡车将能最大的持有7 units,因为

Product 0 = 1 box with 3 units -> [3]
Product 1 = 2 boxes with 2 units -> [2] [2]
Product 2 = 3 boxes with 1 unit -> [1] [1] [1]

Since the truck can hold 3 boxes, we would maximize units by adding boxes [3] + [2] + [2] = 7 units.

这是我的代码,我正在使用贪婪的解决方案计算所有可能的盒子。packedList是我使用的列表,其中包含所有产品的所有包装盒的单位。我对其进行归类并归结起来truckSize以得出最终答案。

def getMaxUnit(num, boxes, unitSize, unitsPerBox, truckSize)  

    packedList = []
    maxUnits = 0
    
    for i in range(num):
        for j in range(boxes[i]):
            packedList.insert(len(packedList), unitsPerBox[i])
        
    packedList.sort(reverse = True)
    
    # Edge case - if truckSize is bigger, then
    # we can use every box in packedList
    if truckSize > len(packedList):
        for i in range(len(packedList)):
            maxUnits += packedList[i]        
    else:
        # Since list is sorted, get the max number of units
        # from packedList
        for i in range(truckSize):
            maxUnits += packedList[i]
    
    return(maxUnits)

比卡博伊

莱斯说

  • X =产品数量
  • Y =每个产品的最大包装盒数
  • Z = X * Y

假设(truckSize< Z),代码的复杂度将为:O(Z log(Z))您的代码的空间复杂度为:O(Z)之所以如此复杂是因为您首先对其进行构建packedList和排序。

我认为您可以进一步改善代码的时间和空间复杂度。您可以建立一个元组列表,每个元组将包含<number-of-units, number-of-boxes>对于您的样本输入,将是这样的:

[(3, 1), (2, 2), (1, 3)]

然后按单位数量的降序对这个列表进行排序(元组的第一项)。由于这个问题要求最大化装载卡车中的单元数。然后,您可以通过选择具有大量单位的框来进行贪婪的选择。以某种方式选择框,使其truckSize不受约束。

元组列表的大小为O(X)然后排序此列表将花费O(X log(X))通过这种方式,您可以减少此问题的时间和空间复杂度,这X显然比少Z

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在给定尺寸的情况下最大的潜在PNG尺寸

来自分类Dev

在给定最大长度的情况下,找到毕达哥拉斯三胞胎的总和

来自分类Dev

递归。在给定起点和最大距离的情况下找到所有最长的路径

来自分类Dev

在给定最大长度的情况下找到拟南芥三联体

来自分类Dev

在给定一组6位数字的情况下,找到每种可能的“非重复”组合

来自分类Dev

在给定分位数的情况下估计反伽马分布的参数

来自分类Dev

在给定属性值的情况下,如何找到它的字符串值

来自分类Dev

在给定n个盒子和x个球的情况下找到组合

来自分类Dev

在给定旋转矩阵的情况下找到顶点的新位置

来自分类Dev

在给定可变数据点的情况下如何找到曲线方程的理论

来自分类Dev

在给定GLIBCXX版本的情况下,如何找到已实现的C ++ 11功能

来自分类Dev

在给定两个点和半径的情况下找到圆的中心

来自分类Dev

在MATLAB中,在给定数据向量的情况下,在阈值内找到零交叉

来自分类Dev

python-在给定条件的情况下找到列表中下一项的位置

来自分类Dev

对于 RSA 加密,在给定 p、q 和 e 的情况下找到 d?

来自分类Dev

在给定坐标和最大距离的情况下找到到特定点的最接近点-使用Mongoose和MEAN Stack查询结果不确定

来自分类Dev

在给定约束的情况下,如何查找数组中2个元素的最大差?

来自分类Dev

在给定矩阵中找到最大的流域尺寸

来自分类Dev

在给定的矩阵中找到最大的流域尺寸

来自分类Dev

如何在给定单位(小时、天、月、年)和数量的情况下增加 JavaScript 日期?

来自分类Dev

在给定HITTypeId的情况下,是否可以获取有关HITType的详细信息?

来自分类Dev

使用scikit-learn可以在给定“ y”的情况下预测数据向量“ x”?

来自分类Dev

在给定帧速率,分辨率和每个像素颜色编码的情况下,如何计算视频尺寸?

来自分类Dev

在R中给定离散CDF的情况下创建分位数函数,该函数可以处理

来自分类Dev

在给定父数组的情况下查找树的深度

来自分类Dev

在给定Collection <T>对象的情况下查找“ T”

来自分类Dev

在给定父数组的情况下查找树的深度

来自分类Dev

在给定X值的情况下获取Y值

来自分类Dev

在给定概率的情况下用替换模型建模

Related 相关文章

  1. 1

    在给定尺寸的情况下最大的潜在PNG尺寸

  2. 2

    在给定最大长度的情况下,找到毕达哥拉斯三胞胎的总和

  3. 3

    递归。在给定起点和最大距离的情况下找到所有最长的路径

  4. 4

    在给定最大长度的情况下找到拟南芥三联体

  5. 5

    在给定一组6位数字的情况下,找到每种可能的“非重复”组合

  6. 6

    在给定分位数的情况下估计反伽马分布的参数

  7. 7

    在给定属性值的情况下,如何找到它的字符串值

  8. 8

    在给定n个盒子和x个球的情况下找到组合

  9. 9

    在给定旋转矩阵的情况下找到顶点的新位置

  10. 10

    在给定可变数据点的情况下如何找到曲线方程的理论

  11. 11

    在给定GLIBCXX版本的情况下,如何找到已实现的C ++ 11功能

  12. 12

    在给定两个点和半径的情况下找到圆的中心

  13. 13

    在MATLAB中,在给定数据向量的情况下,在阈值内找到零交叉

  14. 14

    python-在给定条件的情况下找到列表中下一项的位置

  15. 15

    对于 RSA 加密,在给定 p、q 和 e 的情况下找到 d?

  16. 16

    在给定坐标和最大距离的情况下找到到特定点的最接近点-使用Mongoose和MEAN Stack查询结果不确定

  17. 17

    在给定约束的情况下,如何查找数组中2个元素的最大差?

  18. 18

    在给定矩阵中找到最大的流域尺寸

  19. 19

    在给定的矩阵中找到最大的流域尺寸

  20. 20

    如何在给定单位(小时、天、月、年)和数量的情况下增加 JavaScript 日期?

  21. 21

    在给定HITTypeId的情况下,是否可以获取有关HITType的详细信息?

  22. 22

    使用scikit-learn可以在给定“ y”的情况下预测数据向量“ x”?

  23. 23

    在给定帧速率,分辨率和每个像素颜色编码的情况下,如何计算视频尺寸?

  24. 24

    在R中给定离散CDF的情况下创建分位数函数,该函数可以处理

  25. 25

    在给定父数组的情况下查找树的深度

  26. 26

    在给定Collection <T>对象的情况下查找“ T”

  27. 27

    在给定父数组的情况下查找树的深度

  28. 28

    在给定X值的情况下获取Y值

  29. 29

    在给定概率的情况下用替换模型建模

热门标签

归档