मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, जो कालानुक्रमिक क्रम में किसी कंपनी के स्टॉक की कीमतों का प्रतिनिधित्व कर रहा है। हम प्रति दिन स्टॉक के अधिकतम एक शेयर खरीद सकते हैं, लेकिन आप कई शेयरों पर पकड़ बना सकते हैं और किसी भी दिन स्टॉक बेच सकते हैं। वह अधिकतम लाभ लौटाएं जो आप कमा सकते हैं।
इसलिए, यदि इनपुट संख्या =[3, 4, 7, 3, 5] की तरह है, तो आउटपुट 9 होगा, क्योंकि हम स्टॉक को 3 और 4 पर खरीद सकते हैं और उन्हें 7 पर बेच सकते हैं। फिर फिर से 3 पर खरीद सकते हैं और 5 पर बेचें। कुल लाभ (7 - 3) + (7 - 4) + (5 - 3) =9.
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- उत्तर:=0
- जबकि अंक खाली नहीं हैं, करें
- शीर्ष:=अंकों से अंतिम तत्व हटाएं
- जबकि अंक खाली नहीं हैं और शीर्ष> अंकों का अंतिम तत्व, करते हैं
- उत्तर:=उत्तर + (शीर्ष - अंकों से अंतिम तत्व)
- अंकों से अंतिम तत्व हटाएं
- वापसी उत्तर
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
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