Max Heap是Python吗?
假设我们有一个称为nums的数字列表,我们必须检查它是否代表最大堆。我们将遵循这些规则-
当2*i+1在范围内时,nums[i]=nums[2*i+1]
当2*i+2在范围内时,nums[i]=nums[2*i+2]
因此,如果输入类似于[5,3,4,1,2],则输出为True
为了解决这个问题,我们将遵循以下步骤-
对于范围在0到(数字大小)/2的i
如果nums[i]>=nums[2*i+2]不为真,则
返回False
返回False
如果nums[i]>=nums[2*i+1]不为真,则
如果i*2+2<=(数字大小)-1
返回True
让我们看下面的实现以更好地理解-
示例
class Solution:
def solve(self, nums):
for i in range(len(nums)//2):
if not nums[i] >= nums[2*i+1]:
return False
if i*2+2 <= len(nums)-1:
if not nums[i] >= nums[2*i+2]:
return False
return True
ob = Solution()nums = [5, 3, 4, 1, 2]
print(ob.solve(nums))输入项
[5, 3, 4, 1, 2]
输出结果
True
热门推荐
10 诗词送行祝福语大全简短
11 新房开工吉日祝福语简短
12 50多岁生日简短祝福语
13 安徽疫情祝福语简短英语
14 农民朋友发财祝福语简短
15 对生活祝福语简短精辟
16 搬家词简短祝福语朋友
17 女神结婚快乐祝福语简短
18 文学短句祝福语大全简短