मान लीजिए हमारे पास कीमतों की एक सूची है जो कालानुक्रमिक क्रम में एक कंपनी के स्टॉक की कीमतों को दर्शाती है, हमें उस स्टॉक को केवल एक बार खरीदकर और बेचकर हम अधिकतम लाभ कमा सकते थे, वह ढूंढना है। हमें इस बात का ध्यान रखना होगा कि हम बेचने से पहले खरीदें।
उदाहरण के लिए, यदि इनपुट है prices = [10, 12, 9, 6, 8, 12], तो आउटपुट होगा 6, क्योंकि हम 6 पर खरीद सकते हैं और 12 पर बेच सकते हैं।
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
- max_profit := 0
- min_stock := अनंत
- prices में प्रत्येक price के लिए, करें
- max_profit := max_profit और (price - min_stock) का अधिकतम
- min_stock := min_stock और price का न्यूनतम
- max_profit वापस करें
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
class Solution: def solve(self, prices): max_profit = 0 min_stock = float('inf') for price in prices: max_profit = max(max_profit, price - min_stock) min_stock = min(min_stock, price) return max_profit ob = Solution() print(ob.solve([10, 12, 9, 6, 8, 12]))इनपुट
[10, 12, 9, 6, 8, 12]
आउटपुट
6