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

Python में योग k देने वाले सबसेट की गिनती करने का प्रोग्राम


मान लीजिए हमारे पास nums नाम की संख्याओं की एक सूची है और एक अन्य मान k है, हमें सूची में उन सबसेट की संख्या ढूंढनी है जो k तक जुड़ते हैं। यदि उत्तर बहुत बड़ा है तो इसे 10^9 + 7 से मोड करें

इसलिए, यदि इनपुट इस तरह है nums = [2, 3, 4, 5, 7] k = 7, तो आउटपुट 3 होगा, क्योंकि हम सबसेट [2,5], [3,4] और [7] चुन सकते हैं।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • dp := (k + 1) आकार की एक सूची और 0 से भरें
  • dp[0] := 1
  • m := 10^9 + 7
  • i के लिए 0 से nums के आकार - 1 तक रेंज में, करें
    • j के लिए k से 0 तक रेंज में, 1 से घटाते हुए, करें
      • यदि nums[i] <= j, तो
        • dp[j] := dp[j] + dp[j - nums[i]]
        • dp[j] := dp[j] mod m
  • dp[k] mod m लौटाएं

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

class Solution:
    def solve(self, nums, k):
        dp = [0] * (k + 1)
        dp[0] = 1
        m = int(1e9 + 7)
        for i in range(len(nums)):
            for j in range(k, -1, -1):
                if nums[i] <= j:
                    dp[j] += dp[j - nums[i]]
                    dp[j] %= m
        return dp[k] % m
ob = Solution()
nums = [2, 3, 4, 5, 7]
k = 7
print(ob.solve(nums, k))

इनपुट

[2, 3, 4, 5, 7], 7

आउटपुट

3
  1. Python प्रोग्राम में ऐरे का योग खोजना Python प्रोग्राम में ऐरे का योग खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक ऐरे दिया गया है, हमें ऐरे का योग निकालने की आवश्यकता है। पूरे ऐरे को पार करने और प्रत्येक इंडेक्स पर तत्व को जोड़कर योग प्राप्त करने का ब्रूट-फोर्स दृष्टिकोण नीचे चर्चा किया गया है। उदाहरण # sum फ़ंक्शन def

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

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

  1. पायथन प्रोग्राम: सरणी में इनवर्जन गिनें पायथन प्रोग्राम: सरणी में इनवर्जन गिनें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक लिस्ट दी गई है, हमें आवश्यक इनवर्जन गिनने और प्रदर्शित करने हैं। इनवर्जन काउंट यह गिनकर प्राप्त किया जाता है कि सरणी को क्रमबद्ध करने के लिए कितने चरणों की आवश्यकता है। उदाहरण arr[j]): inv_count += 1 re