मान लीजिए कि हमारे पास एक एरे ए है, यहां ए [i] दिन i पर दिए गए स्टॉक की कीमत का संकेत दे रहा है। हमें अधिकतम लाभ ज्ञात करना है। हम जितने चाहें उतने लेनदेन पूरे कर सकते हैं। (लेनदेन का मतलब स्टॉक खरीदना और बेचना है)। लेकिन हमें यह ध्यान रखना होगा कि हम एक ही समय में कई लेन-देन नहीं कर सकते हैं। इसलिए हमें नया स्टॉक खरीदने से पहले स्टॉक को बेचना होगा।
मान लीजिए कि एरे ए =[7, 1, 5, 3, 6, 4] की तरह है, तो परिणाम 7 होगा। जैसा कि हम देख सकते हैं, अगर हम दिन 2 (इंडेक्स 1) पर खरीदते हैं, तो यह 1 के रूप में लेगा एक खरीद मूल्य। फिर अगर हम 3 दिन बेचते हैं, तो लाभ 5 - 1 =4 होगा। फिर 4 दिन खरीदेंगे, और 5 दिन बेचेंगे, तो लाभ 6 - 3 =3 होगा
इसे हल करने के लिए, इन चरणों का पालन करें -
- उत्तर दें =0
- i के लिए 0 से n - 1 की सीमा में (n, A में तत्वों की संख्या है) -
- यदि A[i] – A[i – 1]> 0, तो
- उत्तर:=उत्तर + A[i] – A[i – 1]
- यदि A[i] – A[i – 1]> 0, तो
- वापसी का जवाब
उदाहरण
आइए इसे बेहतर ढंग से समझने के लिए कार्यान्वयन देखें
class Solution(object): def maxProfit(self, prices): """ :type prices: List[int] :rtype: int """ ans = 0 for i in range(1,len(prices)): if prices[i] - prices[i-1] >0: ans+=(prices[i] - prices[i-1]) return ans ob1 = Solution() print(ob1.maxProfit([7,2,5,8,6,3,1,4,5,4,7]))
इनपुट
print(ob1.maxProfit([7,2,5,8,6,3,1,4,5,4,7]))
आउटपुट
13