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

Python में सिक्का परिवर्तन

समस्या

मान लीजिए हमारे पास विभिन्न मूल्यवर्ग के सिक्के हैं और धन की कुल राशि amount है। हमें एक फ़ंक्शन परिभाषित करना है जो उस राशि को बनाने के लिए आवश्यक न्यूनतम सिक्कों की संख्या की गणना करता है। जब वह राशि सिक्कों के किसी भी संयोजन द्वारा नहीं बनाई जा सकती, तो -1 लौटाएं। उदाहरण के लिए, यदि इनपुट [1,2,5] है, और राशि 11 है, तो आउटपुट 3 होगा। यह 5 + 5 + 1 = 11 का उपयोग करके बनता है।

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

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

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

उदाहरण (Python):

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

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)          #print(dp)       return dp[amount] ob1 = Solution() print(ob1.coinChange([1,2,5], 11))

इनपुट

[1,2,5] 11

आउटपुट

3
  1. पायथन Tkinter में बटन का साइज़ कैसे बदलें? पायथन Tkinter में बटन का साइज़ कैसे बदलें?

    Tkinter Button विजेट्स एप्लिकेशन के लिए आवश्यक बटन बनाने के लिए उपयोग किए जाते हैं। हम बटन कंस्ट्रक्टर में एक इवेंट ऑब्जेक्ट भी जोड़ सकते हैं और कुछ ऑपरेशन करने के लिए इसे ट्रिगर कर सकते हैं। बटन साइज़ को कस्टमाइज़ करने के लिए, हम बटन विजेट के width और height प्रॉपर्टी का उपयोग कर सकते हैं। उदाहरण

  1. Matplotlib (Python) में फॉन्ट्स कैसे बदलें? Matplotlib (Python) में फॉन्ट्स कैसे बदलें?

    plt.text() मेथड का उपयोग करके, हम फॉन्ट साइज़ बढ़ा सकते हैं।चरणplt.plot() मेथड का उपयोग करके, हम दो सूचियों को इसके आर्गुमेंट में पास करके एक लाइन बना सकते हैं।एक्सिस में टेक्स्ट जोड़ें। plt.text() मेथड का उपयोग करके डेटा कोऑर्डिनेट्स में लोकेशन x, y पर टेक्स्ट *s* को एक्सिस में जोड़ें। फॉन्ट साइज़

  1. पायथन प्रोग्राम: सिक्का परिवर्तन पायथन प्रोग्राम: सिक्का परिवर्तन

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