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