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