📅  最后修改于: 2023-12-03 15:40:28.367000             🧑  作者: Mango
给定一组磁盘和一个杆的长度,检查是否所有磁盘都可以放在单个杆上。
下面给出Python的代码实现:
def check_if_all_disks_fit_on_one_rod(disks, rod_length):
disks.sort(reverse=True)
current_rod_length = rod_length
for disk in disks:
if disk <= current_rod_length:
current_rod_length -= disk
else:
return False
return True
disks = [2, 5, 4, 3, 1]
rod_length = 10
print(check_if_all_disks_fit_on_one_rod(disks, rod_length)) # True
disks = [2, 5, 4, 3, 1]
rod_length = 5
print(check_if_all_disks_fit_on_one_rod(disks, rod_length)) # False
时间复杂度:$O(nlogn)$,其中n为磁盘的数量,需要进行一次排序。
空间复杂度:$O(1)$,只需要常数级别的额外空间。