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
热门推荐
10 香港老妈结婚祝福语简短
11 毕业立体贺卡祝福语简短
12 简短新年年会祝福语
13 评论小品祝福语大全简短
14 恭喜师兄结婚祝福语简短
15 员工集体辞职祝福语简短
16 高中新生祝福语 简短
17 装修祝福语男生搞笑简短
18 生日开业蛋糕祝福语简短