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

Python में k खरीद और बिक्री के बाद अधिकतम लाभ खोजने का प्रोग्राम


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

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

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

  • dp() फ़ंक्शन परिभाषित करें। यह i, k, bought लेगा
  • यदि i, prices के आकार के समान है या k, 0 के समान है, तो
    • 0 लौटाएं
  • यदि bought सत्य है, तो
    • (dp(i+1, k-1, False) + prices[i]) और dp(i+1, k, bought) का अधिकतम लौटाएं
  • अन्यथा,
    • (dp(i+1, k, True) - prices[i]) और dp(i + 1, k, bought) का अधिकतम लौटाएं
  • मुख्य मेथड से 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. - पायथन में स्टॉक मार्केट में एक बार खरीद-बिक्री करके प्राप्त अधिकतम लाभ खोजने का प्रोग्राम

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

  1. - पायथन में उन स्ट्रिंग्स की संख्या खोजें जहां 'a' 'a' या 'b' हो सकता है, और 'b' 'b' ही रहता है

    मान लीजिए हमारे पास केवल a और b वाली एक स्ट्रिंग s है। a a रह सकते हैं या b में बदल सकते हैं, लेकिन b को बदला नहीं जा सकता। हमें उन अद्वितीय स्ट्रिंग्स की संख्या ढूंढनी है जो हम बना सकते हैं। उदाहरण के लिए, यदि इनपुट है s = baab, तो आउटपुट होगा 4, क्योंकि हम ये स्ट्रिंग्स बना सकते हैं: [baab, babb,

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

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