Best Time to Buy and Sell Stock II
Best Time to Buy and Sell Stock II
Problem Statement
You are given an integer array prices
where prices[i]
is the price of a given stock on the i
th 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.
Example
Input: prices = [7,1,5,3,6,4]
prices: [7, 1, 5, 3, 6, 4]
Output: 7
Output: 7
Buy on day 2 (price = 1) and sell on day 3 (price = 5), profit = 5-1 = 4. Then buy on day 4 (price = 3) and sell on day 5 (price = 6), profit = 6-3 = 3. Total profit is 4 + 3 = 7.
Solution
The greedy approach is to take every opportunity to make a profit. We can iterate through the prices and whenever the price of the next day is higher than the current day, we buy on the current day and sell on the next day.
Algorithm Steps
- Initialize `maxProfit` to 0.
- Iterate through the prices array from the second day.
- If the price on the current day is greater than the price on the previous day, add the difference to `maxProfit`.
- Return `maxProfit`.
Best Time to Buy and Sell Stock II
Greedy Approach
Input: prices = [7, 1, 5, 3, 6, 4]
Output: 0
Ready to start the visualization
Prices
Total Profit