मान लीजिए कि हमारे पास कालानुक्रमिक क्रम में किसी कंपनी के स्टॉक की कीमतों का प्रतिनिधित्व करने वाली कीमतों की एक सूची है, तो हमें उस स्टॉक को कई बार खरीदने और बेचने से होने वाले अधिकतम लाभ का पता लगाना होगा। हमें यह ध्यान रखना होगा कि हमें इसे बेचने से पहले खरीदना चाहिए।
इसलिए, अगर इनपुट कीमतों की तरह है =[10, 50, 30, 40, 60], तो आउटपुट 70 होगा, क्योंकि हम 10 पर खरीद सकते हैं, 50 पर बेच सकते हैं, 30 पर खरीद सकते हैं और 60 पर बेच सकते हैं। पी>
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- prev_price :=अनंत
- लाभ :=0
- कीमतों में प्रत्येक पी के लिए, करें
- अगर p>
पिछला_मूल्य है, तो
- लाभ :=लाभ + p - prev_price
- prev_price :=p
- अगर p>
पिछला_मूल्य है, तो
- वापसी लाभ
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, prices): prev_price = float("inf") profit = 0 for p in prices: if p > prev_price: profit += p - prev_price prev_price = p return profit ob = Solution() print(ob.solve([10, 50, 30, 40, 60]))
इनपुट
[10, 50, 30, 40, 60]
आउटपुट
70