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

पायथन में सिक्कों के दिए गए सेट के साथ परिवर्तन करने के लिए आवश्यक सिक्कों की संख्या खोजने का कार्यक्रम

मान लीजिए कि हमारे पास विभिन्न मूल्यवर्ग के सिक्के हैं और कुल राशि की राशि है। हमें उस राशि को बनाने के लिए आवश्यक सिक्कों की सबसे कम संख्या की गणना करने के लिए एक फ़ंक्शन को परिभाषित करना होगा। जब सिक्कों के किसी भी संयोजन से उस राशि को समायोजित नहीं किया जा सकता है, तो वापसी -1। तो अगर इनपुट [1,2,5] है, और राशि 64 है, तो आउटपुट 14 है। यह 12*5 + 2 + 2 =64 का उपयोग करके बनाया गया है।

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

  • यदि राशि =0 है, तो 0 वापस करें
  • यदि न्यूनतम सिक्के सरणी> राशि है, तो -1 लौटाएं
  • dp नामक एक सरणी परिभाषित करें, आकार राशि + 1 की, और इसे -1 से भरें
  • मैं श्रेणी के सिक्कों की श्रेणी में
    • यदि i> dp-1 की लंबाई है, तो अगले भाग को छोड़ दें, अगले पुनरावृत्ति के लिए जाएं
    • dp[i] :=1
    • j श्रेणी में i + 1 से राशि के लिए
      • अगर dp[j – 1] =-1, तो अगले भाग को छोड़ दें, अगले पुनरावृत्ति के लिए जाएं
      • अन्यथा यदि dp[j] =-1, तो dp[j] :=dp[j - i] + 1
      • अन्यथा dp[j] :=न्यूनतम dp[j] और dp[j – i] + 1
  • रिटर्न डीपी[राशि]

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

उदाहरण

class Solution(object):
   def coinChange(self, coins, amount):
      if amount == 0 :
         return 0
      if min(coins) > amount:
         return -1
      dp = [-1 for i in range(0, amount + 1)]
      for i in coins:
         if i > len(dp) - 1:
            continue
         dp[i] = 1
         for j in range(i + 1, amount + 1):
            if dp[j - i] == -1:
               continue
            elif dp[j] == -1:
               dp[j] = dp[j - i] + 1
            else:
               dp[j] = min(dp[j], dp[j - i] + 1)
      return dp[amount]
ob1 = Solution()
print(ob1.coinChange([1,2,5],64))

इनपुट

[1,2,5], 64

आउटपुट

14

  1. पायथन का उपयोग करके समान लेबल वाले उप-वृक्ष में नोड्स की संख्या खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास n नोड्स वाला एक रूटेड सामान्य ट्री है, जिसके नोड्स 0 से n-1 तक गिने जाते हैं। प्रत्येक नोड में लोअरकेस अंग्रेजी अक्षर वाला एक लेबल होता है। लेबल्स को लेबल एरे में इनपुट के रूप में दिया जाता है, जहां लेबल्स [i] में ith नोड के लिए लेबल होता है। पेड़ को किनारे की सूची द्वारा दर्श

  1. सूची में सबसे छोटी संख्या खोजने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें सभी सूची दी गई है, हमें सूची में उपलब्ध सबसे छोटी संख्या प्रदर्शित करने की आवश्यकता है यहां हम या तो सूची को क्रमबद्ध कर सकते हैं और सबसे छोटा तत्व प्राप्त कर सकते हैं या सबसे छोटा तत्व प्राप्त करने के लिए अंतर्न

  1. किसी दिए गए स्ट्रिंग में सेट का उपयोग करके स्वरों की संख्या गिनने के लिए पायथन प्रोग्राम

    इस कार्यक्रम में, एक उपयोगकर्ता इनपुट स्ट्रिंग दिया गया। हमें इस स्ट्रिंग में स्वरों की संख्या गिननी है। यहां हम पायथन में सेट का उपयोग करते हैं। सेट एक अनियंत्रित संग्रह डेटा प्रकार है जो चलने योग्य, परिवर्तनशील और कोई डुप्लिकेट तत्व नहीं है। उदाहरण Input : str1=pythonprogram Output : 3 एल्गोरिदम