123. Best Time to Buy and Sell Stock III - LeetCode Solution


Dynamic Programming

Python Code:

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        if not prices:
            return 0
        
        
        max = 0
        curr = prices[-1]
        
        for i in range(len(prices)-2,-1,-1):
            if prices[i]>=curr:
                curr = prices[i]
                
            else:
                mn = prices[0]
                mx = 0
                
                for j in prices[0:i]:
                    if mn>j:
                        mn = j
                    elif j-mn>mx:
                        mx = j-mn
                        
                profit = curr-prices[i] + mx
                if max<profit:
                    max = profit

        return max
        


Comments

Submit
0 Comments
More Questions

1452A - Robot Program
344A - Magnets
96A - Football
702B - Powers of Two
1036A - Function Height
443A - Anton and Letters
1478B - Nezzar and Lucky Number
228A - Is your horseshoe on the other hoof
122A - Lucky Division
1611C - Polycarp Recovers the Permutation
432A - Choosing Teams
758A - Holiday Of Equality
1650C - Weight of the System of Nested Segments
1097A - Gennady and a Card Game
248A - Cupboards
1641A - Great Sequence
1537A - Arithmetic Array
1370A - Maximum GCD
149A - Business trip
34A - Reconnaissance 2
59A - Word
462B - Appleman and Card Game
1560C - Infinity Table
1605C - Dominant Character
1399A - Remove Smallest
208A - Dubstep
1581A - CQXYM Count Permutations
337A - Puzzles
495A - Digital Counter
796A - Buying A House