अपने लीटकोड कौशल को निखारने की चल रही खोज में, मैंने "स्टॉक II खरीदने और बेचने का सबसे अच्छा समय" समस्या का समाधान किया। यह चुनौती क्लासिक "स्टॉक II खरीदने और बेचने का सर्वोत्तम समय" समस्या (लीटकोड 121) का अनुवर्ती है, लेकिन एक महत्वपूर्ण अंतर के साथ: *आप लाभ को अधिकतम करने के लिए कई लेनदेन निष्पादित कर सकते हैं।
*
कोड में गोता लगाने से पहले, मुझे व्हाइटबोर्ड पर समस्या की कल्पना करना अविश्वसनीय रूप से मददगार लगा। इससे मुझे समस्या को छोटे, अधिक प्रबंधनीय चरणों में विभाजित करने की अनुमति मिली।
असीमित लेनदेन करने की लचीलेपन को देखते हुए, एक लालची दृष्टिकोण आशाजनक लग रहा था। मूल विचार सरल है: जब भी किसी शेयर की कीमत पिछले दिन की तुलना में बढ़ती है, तो हम इसे संभावित लाभ का अवसर मानते हैं। इन सभी मूल्य अंतरों को जोड़कर, हम प्रभावी रूप से अधिकतम लाभ की गणना करते हैं।
यहां पायथन कोड है जो इस लालची रणनीति को लागू करता है:
class Solution: def maxProfit(self, prices: List[int]) -> int: profit = 0 for i in range(1, len(prices)): if prices[i] > prices[i-1]: profit =prices[i] - prices[i-1] return profit
/** * @param {number[]} prices * @return {number} */ var maxProfit = function(prices) { var profit = 0; for (var i = 1; i prices[i-1]) { profit = Number(prices[i] - prices[i-1]) } } return profit };
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3