কম্পিউটার টিউটোরিয়াল

পাইথনে मैक्स হিপ চেক করুন


मान लीजिए हमारे पास 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

  1. পাইথনে হিপ লিস্ট ম্যাক্স হিপ কিনা চেক করা

  2. হিপ সর্টের পাইথন প্রোগ্রাম

  3. পাইথন হিপ কিউ অ্যালগরিদম

  4. পাইথন ইটারেটর টাইপস (Iterator Types)