Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में मैक्स हीप की जांच

समस्या विवरण

संख्याओं की एक सूची nums दी गई है, हमें जांचना है कि क्या यह मैक्स हीप को दर्शाता है। मैक्स हीप में प्रत्येक पैरेंट नोड अपने बच्चों से बड़ा या बराबर होता है।

नियम

  • nums[i] >= nums[2*i + 1] (यदि लेफ्ट चाइल्ड मौजूद है)
  • nums[i] >= nums[2*i + 2] (यदि राइट चाइल्ड मौजूद है)

उदाहरण

इनपुट: [5, 3, 4, 1, 2]

आउटपुट: True

एल्गोरिदम

  1. प्रत्येक इंडेक्स 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 वापस करें
  2. यदि सभी जांच पास होती हैं, तो 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
  1. पायथन में हीप मैक्स हीप बना रहा है या नहीं जांचने का प्रोग्राम पायथन में हीप मैक्स हीप बना रहा है या नहीं जांचने का प्रोग्राम

    मान लीजिए हमारे पास एक सूची है जो हीप ट्री का प्रतिनिधित्व करती है। जैसा कि हम जानते हैं हीप एक पूर्ण बाइनरी ट्री है। हमें जांचना है कि तत्व मैक्स हीप बना रहे हैं या नहीं। जैसा कि हम जानते हैं मैक्स हीप के लिए प्रत्येक तत्व अपने दोनों बच्चों से बड़ा होता है। इसलिए, यदि इनपुट है nums = [8, 6, 4, 2, 0

  1. पायथन प्रोग्राम: हीप सॉर्ट पायथन प्रोग्राम: हीप सॉर्ट

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक सरणी दी गई है, हमें हीपसॉर्ट की अवधारणा का उपयोग करके इसे क्रमबद्ध करना है। यहां हम अधिकतम तत्व को अंत में रखते हैं। यह तब तक दोहराया जाता है जब तक सरणी क्रमबद्ध नहीं हो जाती। उदाहरण # हीपिफाई def heapify(arr, n, i): la

  1. - पायथन इटरेटर टाइप्स

    पायथन में कंटेनर्स पर इटरेशन कॉन्सेप्ट होता है। इटरेटर्स के दो विशिष्ट फंक्शन्स होते हैं। इन फंक्शन्स का उपयोग करके, हम इटरेशन सपोर्ट करने के लिए यूजर-डिफाइंड क्लासेस बना सकते हैं। ये फंक्शन्स हैं __iter__() और __next__()।__iter__() मेथड__iter__() मेथड इटरेटर ऑब्जेक्ट लौटाता है। यदि एक क्लास विभिन्न