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

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

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

इसलिए, यदि इनपुट कीमतों की तरह है =[2, 10, 4, 8] शुल्क =3, तो आउटपुट 6 होगा, क्योंकि हम 2 पर खरीद सकते हैं और 10 पर बेच सकते हैं और 3 का शुल्क लगा सकते हैं, इसलिए लाभ 5 है . फिर हम 4 पर खरीदते हैं और 8 पर बेचते हैं और 3 का शुल्क लेते हैं, इसलिए लाभ 1, कुल लाभ 6.

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

  • n :=कीमतों का आकार

  • फ़ंक्शन रिकूर ​​() को परिभाषित करें। इसमें i:=0 और ध्वज :=0

    . लगेगा
  • अगर मैं n के समान हूं, तो

    • वापसी 0

  • अगर झंडा झूठा है, तो

    • अधिकतम वापसी (i + 1, 1) - मूल्य [i] और पुनरावृत्ति (i + 1, 0)

  • अधिकतम वापसी (i + 1, 1) और पुनरावृत्ति (i + 1, 0) + मूल्य [i] - शुल्क

  • मुख्य विधि से कॉल रिकूर ​​()

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

उदाहरण

class Solution:
   def solve(self, prices, fee):
      n = len(prices)

      def recur(i=0, flag=0):
         if i == n:
            return 0
         if not flag:
            return max(recur(i + 1, 1) - prices[i], recur(i + 1, 0))
         return max(recur(i + 1, 1), recur(i + 1, 0) + prices[i] - fee)

      return recur()

ob = Solution()
prices = [2, 10, 4, 8]
fee = 3
print(ob.solve(prices, fee))

इनपुट

[2, 10, 4, 8], 3

आउटपुट

6

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

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

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

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

  1. अधिकतम बिटवाइज़ AND और बिटवाइज़ या पायथन में परवर्ती खोजें

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