मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है, जो एक कंपनी के स्टॉक की कीमतों को कालानुक्रमिक क्रम में दर्शाती है। हम प्रति दिन अधिकतम एक शेयर खरीद सकते हैं, लेकिन आप कई स्टॉक रख सकते हैं और किसी भी संख्या में दिनों में स्टॉक बेच सकते हैं। आपके द्वारा अर्जित किए जा सकने वाले अधिकतम लाभ को लौटाएं।
इसलिए, यदि इनपुट है nums = [3, 4, 7, 3, 5], तो आउटपुट होगा 9, क्योंकि हम स्टॉक को 3 और 4 पर खरीद सकते हैं और उन्हें 7 पर बेच सकते हैं। फिर फिर से 3 पर खरीदें और 5 पर बेचें। कुल लाभ (7 - 3) + (7 - 4) + (5 - 3) = 9।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
ans := 0- जब
numsखाली नहीं है, करें:top := numsसे अंतिम तत्व हटाएं- जब
numsखाली नहीं है औरtop > numsका अंतिम तत्व, करें:ans := ans + (top - nums से अंतिम तत्व)numsसे अंतिम तत्व हटाएं
ansलौटाएं
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
def solve(nums):
ans = 0
while nums:
top = nums.pop()
while nums and top > nums[-1]:
ans += top - nums.pop()
return ans
nums = [3, 4, 7, 3, 5]
print(solve(nums))
इनपुट
[3, 4, 7, 3, 5]
आउटपुट
9