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

पायथन में k खरीदें और बेचें के बाद हम अधिकतम लाभ प्राप्त करने के लिए कार्यक्रम कर सकते हैं

मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है जो कालानुक्रमिक क्रम में एक कंपनी के शेयर की कीमतों का प्रतिनिधित्व कर रहा है और हमारे पास एक और मूल्य भी है, हमें अधिकतम लाभ का पता लगाना है जो हम k खरीद और बिक्री से कर सकते हैं (हमें खरीदना चाहिए बेचने से पहले, और खरीदने से पहले बेचें)।

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

. पर

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

  • एक फ़ंक्शन को परिभाषित करें dp() । इसमें i, k, ख़रीदा गया
  • . लगेगा
  • यदि मैं कीमतों के आकार के समान हूं या k, 0 के समान है, तो
    • वापसी 0
  • अगर खरीदा सही है, तो
    • अधिकतम (dp(i+1, k-1, False) + मूल्य[i]) और dp(i+1, k, खरीदा गया)
    • लौटाएं
  • अन्यथा,
    • अधिकतम (dp(i+1, k, True) -कीमत[i]) और dp(i + 1, k, खरीदा गया)
    • लौटाएं
  • मुख्य विधि से dp(0, k, False) पर कॉल करें और परिणाम लौटाएं

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

उदाहरण

class Solution:
   def solve(self, prices, k):
      def dp(i, k, bought):
         if i == len(prices) or k == 0:
            return 0
         if bought:
            return max(dp(i + 1, k - 1, False) + prices[i], dp(i + 1, k, bought))
         else:
            return max(dp(i + 1, k, True) - prices[i], dp(i + 1, k, bought))

      return dp(0, k, False)

ob = Solution()
prices = [7, 3, 5, 2, 3]
k = 2
print(ob.solve(prices, k))

इनपुट

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

आउटपुट

3

  1. पायथन में एक बार शेयर बाजार में खरीदारी करके हम अधिकतम लाभ प्राप्त करने का कार्यक्रम प्राप्त कर सकते हैं

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

  1. स्ट्रिंग की संख्या खोजने के लिए प्रोग्राम जहां हम 'ए' 'ए' या 'बी' हो सकते हैं, और 'बी' पाइथन में 'बी' रहता है

    मान लीजिए कि हमारे पास केवल ए और बी के साथ एक स्ट्रिंग है। ए एस ए रह सकता है या बी में बदल सकता है, लेकिन बी को बदला नहीं जा सकता है। हमें अद्वितीय स्ट्रिंग्स की संख्या ज्ञात करनी होगी जो हम बना सकते हैं। इसलिए, यदि इनपुट s =baab जैसा है, तो आउटपुट 4 होगा, क्योंकि हम इन स्ट्रिंग्स को बना सकते हैं -

  1. एक सूची में अधिकतम और न्यूनतम तत्व की स्थिति खोजने के लिए पायथन कार्यक्रम?

    पायथन में अधिकतम, न्यूनतम तत्व और उनकी स्थिति का भी पता लगाना बहुत आसान है। पायथन विभिन्न इनबिल्ट फ़ंक्शन प्रदान करता है। न्यूनतम () का उपयोग किसी सरणी में न्यूनतम मान ज्ञात करने के लिए किया जाता है, अधिकतम () का उपयोग किसी सरणी में अधिकतम मान ज्ञात करने के लिए किया जाता है। अनुक्रमणिका () का उपयोग