Python程序来检查我们是否可以堆积立方体

假设我们有一个包含 n 个不同立方体大小的数组 nums,它们水平放置。我们必须垂直制作一堆立方体。新的立方体应该遵循 -

  • 如果第 i 个立方体在第 j 个立方体的顶部,则第 j 个立方体的边长必须大于或等于第 i 个立方体的边长。

当我们做垂直堆时,我们只能从左侧或右侧取立方体,而不能从中间取立方体。我们必须检查我们是否可以把它们堆起来。

所以,如果输入像 nums = [1,2,3,7,8],那么输出就会是 True,因为我们可以从右到左取箱子,成功地把它们堆起来。

示例

让我们看下面的实现来更好地理解

from collections import deque

def solve(nums):

   n = len(nums)

   d = deque(nums)

   flag = True

   prev = 0

   while d:

      first = d[0]

      last = d[-1]

      if prev != 0 and (first > prev or last > prev):

         flag = False

         break

      if first >= last:

         prev = d.popleft()

      else:

         prev = d.pop()

   if flag:

      return True

   else:

      return False

nums = [1,2,3,7,8]

print(solve(nums))

输入

[1,2,3,7,8]
输出结果
True

以上是 Python程序来检查我们是否可以堆积立方体 的全部内容, 来源链接: utcz.com/z/345681.html

回到顶部