在Python中查找有多少个箱子可以放入仓库的程序

在Python中查找有多少个箱子可以放入仓库的程序

假设,我们有两个包含整数的数组。一个数组包含单位宽度箱子的高度,另一个数组包含仓库中房间的高度。房间编号为0…n,并且在数组godown的相应索引中提供了房间的高度。我们必须找出可以推入仓库的盒子数量。有几件事情必须记住,

  • 盒子不能相互放置。

  • 盒子的顺序可以更改。

箱子可以从任何一侧放进仓库,可以从左边或右边放置。如果一个盒子比房间的高度高,那么盒子和所有右侧的盒子都不能推入仓库。

因此,如果输入如下:boxes = [4, 5, 6],godown = [4, 5, 6, 7],则输出将是3。输入的所有三个箱子都可以放入仓库。

在Python中查找有多少个箱子可以放入仓库的程序

为了解决这个问题,我们将按照以下步骤进行 –

  • 将列表中的箱子按降序排列

  • l:= 0

  • r:= godown的大小-1

  • bi:= 0

  • 返回:= 0

  • 当bi < boxes的大小且l <= r时,执行以下操作

    • 如果godown [l]> godown [r],则
      • 如果boxes [bi] <= godown [l],那么

      • 返回:=返回+ 1

      • l:= l + 1

      • 否则,

      • 如果boxes [bi] <= godown [r],那么

        • 返回值:=返回值+ 1

        • r:= r-1

      • bi:= bi + 1

  • 返回返回值

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

示例(Python)

让我们查看以下实现以更好地理解 −

def solve(boxes, godown):
   boxes.sort(reverse = True)

   l, r = 0, len(godown) - 1
   bi, ret = 0, 0
   while bi < len(boxes) and l <= r:
      if godown[l] > godown[r]:
         if boxes[bi] <= godown[l]:
            ret += 1
            l += 1
      else:
         if boxes[bi] <= godown[r]:
            ret += 1
            r -= 1
      bi += 1

   return ret

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

输入

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

输出

3

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程