Best Time to Buy and Sell Stock II

Given an array prices where prices[i] is the price of a stock on day i, return the maximum profit you can achieve. You may complete as many transactions as you like, but you must sell the stock before you buy again. Pattern focus: Contrast with DP. Capture every upward price movement by summing positive differences between consecutive days.

Input Format

prices = stock prices by day

Output Format

maximum profit with unlimited transactions

Constraints

  • 1 <= prices.length <= 10^5
  • 0 <= prices[i] <= 10^9

Examples

Example 1:

Input:

prices = [7,1,5,3,6,4]

Output:

7

Explanation:

Buy at 1 sell at 5, then buy at 3 sell at 6.

Example 2:

Input:

prices = [1,2,3,4,5]

Output:

4

Explanation:

Buy once on day 1 and sell on day 5, or sum every positive increment.

Example 3:

Input:

prices = [7,6,4,3,1]

Output:

0

Explanation:

No profitable transaction is possible.

Loading...
Best Time to Buy and Sell Stock II - Greedy