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

Python में अधिकतम दो बार स्टॉक खरीद-बिक्री के बाद अधिकतम लाभ खोजने का प्रोग्राम


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

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

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

  • first_buy := -inf, first_sell := -inf
  • second_buy := -inf, second_sell := -inf
  • प्रत्येक px के लिए prices में, करें
    • first_buy := first_buy और -px का अधिकतम
    • first_sell := first_sell और (first_buy + px) का अधिकतम
    • second_buy := second_buy और (first_sell - px) का अधिकतम
    • second_sell := second_sell और (second_buy + px) का अधिकतम
  • 0, first_sell और second_sell का अधिकतम लौटाएं

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

उदाहरण

class Solution:
    def solve(self, prices):
        first_buy = first_sell = float("-inf")
        second_buy = second_sell = float("-inf")
        for px in prices:
            first_buy = max(first_buy, -px)
            first_sell = max(first_sell, first_buy + px)
            second_buy = max(second_buy, first_sell - px)
            second_sell = max(second_sell, second_buy + px)
        return max(0, first_sell, second_sell)
ob = Solution()
prices = [2, 6, 3, 4, 2, 9]
print(ob.solve(prices))

इनपुट

[2, 6, 3, 4, 2, 9]

आउटपुट

11
  1. - पायथन में स्टॉक मार्केट में कई बार खरीद-बिक्री करके प्राप्त अधिकतम लाभ खोजने का प्रोग्राम

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

  1. - पायथन में स्टॉक मार्केट में एक बार खरीद-बिक्री करके प्राप्त अधिकतम लाभ खोजने का प्रोग्राम

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

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

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