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

पायथन में संयोजन योग

मान लीजिए कि हमारे पास उम्मीदवार संख्याओं का एक सेट है (सभी तत्व अद्वितीय हैं) और एक लक्ष्य संख्या है। हमें उम्मीदवारों में सभी अद्वितीय संयोजन खोजने होंगे जहां उम्मीदवार संख्या दिए गए लक्ष्य के योग हो। वही दोहराई गई संख्या उम्मीदवारों में से असीमित बार चुनी जा सकती है। इसलिए यदि तत्व [2,3,6,7] हैं और लक्ष्य मान 7 है, तो संभावित आउटपुट [[7], [2,2,3]]

होगा।

आइए चरणों को देखें -

  • हम इसे पुनरावर्ती तरीके से हल करेंगे। पुनरावर्ती फ़ंक्शन को हल () के रूप में नामित किया गया है। यह परिणामों को संग्रहीत करने के लिए एक सरणी लेता है, रिकॉर्ड रखने के लिए एक नक्शा, लक्ष्य मान और अलग-अलग तत्वों की एक सूची। प्रारंभ में रेस ऐरे और मैप खाली है। हल करने का तरीका नीचे की तरह काम करेगा -

  • यदि लक्ष्य 0 है, तो
    • अस्थायी:=सूची में मौजूद तत्वों की सूची
    • temp1 :=temp, फिर temp को सॉर्ट करें
    • यदि अस्थायी मानचित्र में नहीं है, तो मानचित्र में अस्थायी डालें और मान 1 के रूप में सेट करें, अस्थायी को रेस में डालें
    • वापसी
    • अगर अस्थायी <0, तो वापस आएं
    • x के लिए श्रेणी I से तत्व सूची की लंबाई तक,
      • तत्वों को डालें[x] को करंट में डालें
      • समाधान (तत्व, लक्ष्य - तत्व [x], रेस, मानचित्र, i, वर्तमान)
      • सूचकांक से वर्तमान सूची से तत्व हटाएं (वर्तमान की लंबाई -1)

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

उदाहरण

class Solution(object):
   def combinationSum(self, candidates, target):
      result = []
      unique={}
      candidates = list(set(candidates))
      self.solve(candidates,target,result,unique)
      return result
   def solve(self,candidates,target,result,unique,i = 0,current=[]):
      if target == 0:
         temp = [i for i in current]
         temp1 = temp
         temp.sort()
         temp = tuple(temp)
         if temp not in unique:
            unique[temp] = 1
            result.append(temp1)
         return
      if target <0:
         return
      for x in range(i,len(candidates)):
         current.append(candidates[x])
         self.solve(candidates,target-candidates[x],result,unique,i,current)
         current.pop(len(current)-1)
ob1 = Solution()
print(ob1.combinationSum([2,3,6,7,8],10))

इनपुट

[2,3,6,7,8]
10

आउटपुट

[[2, 8], [2, 2, 2, 2, 2], [2, 2, 3, 3], [2, 2, 6], [3, 7]]

  1. पायथन में पथ योग

    मान लीजिए कि हमारे पास एक पेड़ और एक योग है। हमें एक रास्ता ऐसा खोजना होगा कि अगर हम उस रास्ते पर चलेंगे तो हमें वह योग मिलेगा जो दिए गए योग से मेल खाएगा। मान लीजिए पेड़ [0,-3,9,-10, null,5] जैसा है और योग 14 है, तो एक पथ है 0 → 9 → 5 इसे हल करने के लिए, हम इन चरणों का पालन करेंगे। यदि जड़ शून

  1. पायथन में दो योग

    मान लीजिए कि हमारे पास पूर्णांकों की एक सरणी है। हमें दो पूर्णांकों के सूचकांकों को वापस करना होगा, जैसे कि यदि हम उन्हें जोड़ दें, तो हम एक विशिष्ट लक्ष्य तक पहुंच जाएंगे जो कि दिया गया है। यहां हम एक धारणा लेंगे, कि सरणी में हमेशा एक अनूठा समाधान होगा, इसलिए एक ही लक्ष्य के लिए सूचकांकों का कोई भी

  1. पायथन में क्रमपरिवर्तन और संयोजन?

    इस खंड में, हम यह जानने जा रहे हैं कि पायथन प्रोग्रामिंग भाषा का उपयोग करके किसी दिए गए अनुक्रम के क्रमपरिवर्तन और संयोजन को कैसे खोजा जाए। अन्य प्रोग्रामिंग भाषा की तुलना में अजगर का एक प्रमुख लाभ यह है कि यह इसके साथ पुस्तकालयों के विशाल सेट के साथ आता है। हम दिए गए अनुक्रम के क्रमपरिवर्तन और सं