मान लीजिए कि हमारे पास अलग-अलग संख्याओं की एक सूची है, जिन्हें अंक कहा जाता है और एक अन्य संख्या k, हमें अलग-अलग संयोजनों की संख्या ज्ञात करनी है, जिनका योग k तक है। संयोजन बनाते समय आप संख्याओं का पुन:उपयोग कर सकते हैं।
इसलिए, यदि इनपुट nums =[2, 4, 5] k =4 जैसा है, तो आउटपुट 2 होगा, क्योंकि हम ऐसे दो समूह बना सकते हैं जैसे [2, 2] और [4]।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
- तालिका :=k + 1 आकार वाली एक सूची, और 0 से भरें
- टेबल[0] :=1
- अंकों में प्रत्येक अंक के लिए, करें
- i के लिए num से k तक, do
- टेबल[i] :=टेबल[i] + टेबल[i - num]
- i के लिए num से k तक, do
- रिटर्न टेबल[k]
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण कोड
class Solution: def solve(self, nums, k): table = [1] + [0] * k for num in nums: for i in range(num, k + 1): table[i] += table[i - num] return table[k] ob = Solution() nums = [2, 4, 5] k = 4 print(ob.solve(nums, k))
इनपुट
[2, 4, 5], 4
आउटपुट
2