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 父母生日祝福语 简短独特
13 家庭恩爱祝福语简短英文
14 高考俄语祝福语大全简短
15 虎年祝福语 诗句唯美简短
16 生日婚礼祝福语简短精辟
17 虎年喝酒拜年祝福语简短
18 教师闺蜜祝福语简短