Python程序来检查我们是否可以堆积立方体
假设我们有一个包含 n 个不同立方体大小的数组 nums,它们水平放置。我们必须垂直制作一堆立方体。新的立方体应该遵循 -
如果第 i 个立方体在第 j 个立方体的顶部,则第 j 个立方体的边长必须大于或等于第 i 个立方体的边长。
当我们做垂直堆时,我们只能从左侧或右侧取立方体,而不能从中间取立方体。我们必须检查我们是否可以把它们堆起来。
所以,如果输入像 nums = [1,2,3,7,8],那么输出就会是 True,因为我们可以从右到左取箱子,成功地把它们堆起来。
示例
让我们看下面的实现来更好地理解
from collections import dequedef 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