Best Time to Buy and Sell Stock using Strategy
You receive two integer arrays prices and strategy , where:
-
prices[i]is the price of a given stock on thei^thday. -
strategy[i]represents a trading action on thei^thday, where:-
-1indicates buying one unit of the stock. -
0indicates holding the stock. -
1indicates selling one unit of the stock.
-
You are also given an even integer k , and may perform at most one modification to strategy . A modification consists of:
-
Selecting exactly
kconsecutive elements instrategy. -
Set the first
k / 2elements to0(hold). -
Set the last
k / 2elements to1(sell).
The profit is defined as the sum of strategy[i] * prices[i] across all days.
Produce the maximum possible profit you can achieve.
Note: There are no constraints on budget or stock ownership, so all buy and sell operations are feasible regardless of past actions.
Input: prices = [4,2,8], strategy = [-1,0,1], k = 2
Output: 10
Explanation:
| Modification | Strategy | Profit Calculation | Profit |
|---|---|---|---|
| Original | [-1, 0, 1] | (-1 × 4) + (0 × 2) + (1 × 8) = -4 + 0 + 8 | 4 |
| Modify [0, 1] | [0, 1, 1] | (0 × 4) + (1 × 2) + (1 × 8) = 0 + 2 + 8 | 10 |
| Modify [1, 2] | [-1, 0, 1] | (-1 × 4) + (0 × 2) + (1 × 8) = -4 + 0 + 8 | 4 |
Thus, the maximum possible profit is 10, which is achieved by modifying the subarray [0, 1] .
Input: prices = [5,4,3], strategy = [1,1,0], k = 2
Output: 9
Explanation:
| Modification | Strategy | Profit Calculation | Profit |
|---|---|---|---|
| Original | [1, 1, 0] | (1 × 5) + (1 × 4) + (0 × 3) = 5 + 4 + 0 | 9 |
| Modify [0, 1] | [0, 1, 0] | (0 × 5) + (1 × 4) + (0 × 3) = 0 + 4 + 0 | 4 |
| Modify [1, 2] | [1, 0, 1] | (1 × 5) + (0 × 4) + (1 × 3) = 5 + 0 + 3 | 8 |
Thus, the maximum possible profit is 9, which is achieved without any modification.
Constraints
2 <= prices.length == strategy.length <= 10^51 <= prices[i] <= 10^5-1 <= strategy[i] <= 12 <= k <= prices.lengthkis even
Did this problem appear in one of your interviews?
Responses stay private.
