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

पायथन में सर्कुलर लिस्ट में नॉन-एडजेसेंट तत्वों का योग खोजने का प्रोग्राम


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

उदाहरण के लिए, यदि इनपुट nums = [10, 3, 4, 8] है, तो आउटपुट 14 होगा, क्योंकि हम 10 और 4 ले सकते हैं। हम 10 और 8 नहीं ले सकते क्योंकि वे सन्निहित हैं।

समाधान दृष्टिकोण

इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे (हाउस रॉबर II - दो केस):

  • n := len(nums)
  • nums1 := nums[0:n-1] (पहला तत्व शामिल, अंतिम बाहर)
  • nums2 := nums[1:] (पहला बाहर, अंतिम शामिल)
  • फंक्शन f(i) परिभाषित करें nums1 के लिए (रिकर्सिव + मेमो):
    • यदि i >= len(nums1): 0 लौटाएं
    • max(nums1[i] + f(i+2), f(i+1)) लौटाएं
  • फंक्शन g(j) परिभाषित करें nums2 के लिए
  • max(f(0), g(0)) लौटाएं

उदाहरण कोड

class Solution:
    def solve(self, nums):
        n = len(nums)
        nums1 = nums[:n-1]
        nums2 = nums[1:]
        from functools import lru_cache
        @lru_cache(None)
        def f(i):
            if i >= len(nums1):
                return 0
            return max(nums1[i] + f(i+2), f(i+1))
        @lru_cache(None)
        def g(j):
            if j >= len(nums2):
                return 0
            return max(nums2[j] + g(j+2), g(j+1))
        return max(f(0), g(0))

ob = Solution()
nums = [10, 3, 4, 8]
print(ob.solve(nums))

इनपुट

[10, 3, 4, 8]

आउटपुट

14

  1. पायथन में ट्री के गैर-आसन्न नोड्स के अधिकतम योग को खोजने का प्रोग्राम पायथन में ट्री के गैर-आसन्न नोड्स के अधिकतम योग को खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री है, हमें उन मानों का अधिकतम योग ढूंढना है जो इस शर्त पर प्राप्त किया जा सकता है कि कोई दो मान आसन्न पैरेंट-टू-चाइल्ड न हों।इसलिए, यदि इनपुट इस तरह हैतो आउटपुट 17 होगा क्योंकि 10, 4, 3 एक-दूसरे से आसन्न नहीं हैं।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे −

  1. पायथन प्रोग्राम: लिस्ट का संचयी योग ज्ञात करें पायथन प्रोग्राम: लिस्ट का संचयी योग ज्ञात करें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक लिस्ट दी गई है, हमें संचयी योग के साथ एक लिस्ट बनानी है। उदाहरण # संचयी योग def Cumulative(l): new = [] cumsum = 0 for element in l: cumsum += element new.append(cumsum) return new # ड्राइवर

  1. पायथन प्रोग्राम: लिस्ट में एलिमेंट्स का योग ढूंढें पायथन प्रोग्राम: लिस्ट में एलिमेंट्स का योग ढूंढें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट इनपुट के रूप में एक लिस्ट दिए जाने पर, हमें दी गई लिस्ट का योग निकालने की आवश्यकता है। यहां हमारे पास दो दृष्टिकोण हैं: बिल्ट-इन फंक्शन का उपयोग करना और ब्रूट-फोर्स दृष्टिकोण का उपयोग