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