मान लीजिए हमारे पास prices नामक सूची है जो किसी कंपनी के स्टॉक की कीमतों को कालानुक्रमिक क्रम में दर्शाती है। हमें उस अधिकतम लाभ को ढूंढना है जो हम उस स्टॉक को केवल एक बार खरीद और बेचकर कमा सकते थे। हमें ध्यान रखना होगा कि हम बेचने से पहले खरीदना होगा।
उदाहरण के लिए, यदि इनपुट है prices = [10, 12, 9, 6, 8, 12], तो आउटपुट होगा 6, क्योंकि हम 6 पर खरीद सकते हैं और 12 पर बेच सकते हैं।
हल करने के चरण
max_profit := 0min_stock := infinity- प्रत्येक
priceके लिएpricesमें:max_profit := max(max_profit, price - min_stock)min_stock := min(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