在Python中查找放入仓库的箱子数量的程序

在Python中查找放入仓库的箱子数量的程序

假设我们有两个包含整数的数组。一个列表包含一些等宽箱子的高度,另一个数组包含仓库中房间的高度。房间编号为0…n,并且它们的高度在它们各自的索引中提供在数组godown中。我们必须找出可以推入仓库的箱子数。必须记住以下几点,

  • 箱子不能相互放置。

  • 箱子的顺序可以改变。

  • 箱子仅从左到右放入仓库。

如果箱子比房间的高度高,则无法将箱子及其右侧的所有箱子推入仓库。

因此,如果输入为boxes = [4,5,6],godown = [4, 5, 6, 7],则输出将为1。只能插入一个盒子。第一个房间的大小为4,其长度小于其他箱子,因此其他箱子无法推入仓库。

在Python中查找放入仓库的箱子数量的程序

解决此问题,我们将遵循以下步骤 –

  • 对箱子列表进行排序

  • curmin:包含godown的第一个元素的新列表

  • cm :curmin[0]

  • 对于i在1到大小为godown的范围内,执行

    • cur:godown[i]

    • 如果cur < cm,则

      • cm := cur
    • 在curmin的末尾插入cm

  • i:= 0

  • j := godown的大小 -1

  • r := 0

  • 当j > = 0且i < boxes的大小时,执行

    • 如果curmin[j] > = boxes[i],则
      • i := i + 1

      • r := r + 1

    • j := j – 1

  • 返回r

更多Python相关文章,请阅读:Python 教程

示例(Python)

看看以下实现以获得更好的理解 –

def solve(boxes, godown):
   boxes.sort()
   curmin = [godown[0]]
   cm = curmin[0]
   for i in range(1, len(godown)):
      cur = godown[i]
      if cur < cm:
         cm = cur
      curmin.append(cm)
   i,j = 0, len(godown)-1
   r = 0
   while j >= 0 and i < len(boxes):
       if curmin[j] >= boxes[i]:
         i += 1
         r += 1
      j -= 1
   return r

print(solve([4,5,6], [4, 5, 6, 7]))

输入

[4,5,6], [4, 5, 6, 7]

输出

1

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程