You are given an integer array prices where prices[i] is the price of a given stock on the ith day.
On each day, you may decide to buy and/or sell the stock. You can only hold at most one share of the stock at any time. However, you can buy it then immediately sell it on the same day.
Find and return the maximum profit you can achieve.
Greedy Insight: Capture every upward price movement. If tomorrow's price is higher than today's, buy today and sell tomorrow. The sum of all positive differences equals the maximum profit.
Why Greedy Works: We can complete as many transactions as we want. Any profitable opportunity (price going up) should be captured. There's no penalty for multiple transactions, so we greedily take every gain.
prices = [7,1,5,3,6,4]7prices = [1,2,3,4,5]4prices = [7,6,4,3,1]01 <= prices.length <= 3 * 10^40 <= prices[i] <= 10^4Click "Run" to execute your code against test cases
Socratic guidance - I'll ask questions, not give answers