समस्या विवरण
संख्याओं की एक सूची nums दी गई है, हमें जांचना है कि क्या यह मैक्स हीप को दर्शाता है। मैक्स हीप में प्रत्येक पैरेंट नोड अपने बच्चों से बड़ा या बराबर होता है।
नियम
nums[i] >= nums[2*i + 1](यदि लेफ्ट चाइल्ड मौजूद है)nums[i] >= nums[2*i + 2](यदि राइट चाइल्ड मौजूद है)
उदाहरण
इनपुट: [5, 3, 4, 1, 2]
आउटपुट: True
एल्गोरिदम
- प्रत्येक इंडेक्स
iके लिए 0 सेlen(nums)//2 - 1तक:- यदि
nums[i] < nums[2*i + 1], तोFalseवापस करें - यदि राइट चाइल्ड मौजूद है (
2*i + 2 < len(nums)) औरnums[i] < nums[2*i + 2], तोFalseवापस करें
- यदि
- यदि सभी जांच पास होती हैं, तो
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 2*i + 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