Maximum Profit With Value-Based Jumps
Problem statement
You start at index 0 of an array of positive integers profits. At an index i, choose exactly one action:
- Take
profits[i]profit and jump to indexi + 1 + profits[i]. - Skip the profit and move to index
i + 1.
The process ends after moving beyond the last index. Return the maximum total profit you can collect.
Function
maximumJumpProfit(profits: int[]) → longExamples
Example 1
profits = [3,2,5,1,4]return = 7Take 3 at index zero, jump to index four, and take 4.
Example 2
profits = [1,1,1,1]return = 2Taking a one skips the next index, so at most two values can be collected.
Example 3
profits = [5,1,1]return = 5Taking the first value jumps beyond the array and is optimal.
Constraints
1 <= profits.length <= 200000.1 <= profits[i] <= 10^9.- The answer fits in a signed 64-bit integer.