Best Time to Buy and Sell Stock using Strategy

You are given two integer arrays prices and strategy, where:

  • prices[i] is the price of a given stock on the i^th day.
  • strategy[i] represents a trading action on the i^th day, where:
  • -1 indicates buying one unit of the stock.
  • 0 indicates holding the stock.
  • 1 indicates 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 k consecutive elements in strategy.
  • Set the first k / 2 elements to 0 (hold).
  • Set the last k / 2 elements to 1 (sell).

The profit is defined as the sum of strategy[i] * prices[i] across all days.

Return 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.

Example 1
Inputprices = [4,2,8], strategy = [-1,0,1], k = 2
Output10
The maximum possible profit is 10, achieved by modifying the subarray [0, 1] so the strategy becomes [0, 1, 1].
Example 2
Inputprices = [5,4,3], strategy = [1,1,0], k = 2
Output9
The maximum possible profit is 9, achieved without any modification.

Constraints

  • 2 <= prices.length == strategy.length <= 10^5
  • 1 <= prices[i] <= 10^5
  • -1 <= strategy[i] <= 1
  • 2 <= k <= prices.length
  • k is even

Asked at 5 companies

</>

Your Solution

(Ctrl/Cmd + Enter)

Switching Language

Loading template...

Loading...

Sign in to save your progress

AI code evaluation

Get a correctness verdict, missed edge cases, and complexity analysis of your solution.

Sign in to evaluate