मान लीजिए हमारे पास कीमतों की एक सूची है जो कालानुक्रमिक क्रम में एक कंपनी के स्टॉक की कीमतों को दर्शाती है, हमें उस स्टॉक को कितनी भी बार खरीदकर और बेचकर हम अधिकतम लाभ कमा सकते थे, वह ढूंढना है। हमें इस बात का ध्यान रखना होगा कि हम बेचने से पहले खरीदें।
उदाहरण के लिए, यदि इनपुट है prices = [10, 50, 30, 40, 60], तो आउटपुट होगा 70, क्योंकि हम 10 पर खरीद सकते हैं, 50 पर बेच सकते हैं, 30 पर खरीद सकते हैं, और 60 पर बेच सकते हैं।
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
- prev_price := अनंत
- profit := 0
- prices में प्रत्येक p के लिए, करें
- यदि p > prev_price, तो
- profit := profit + p - prev_price
- prev_price := p
- यदि p > prev_price, तो
- profit वापस करें
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
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