En la tercera edición de ‘Introducción a los algoritmos’, ¿por qué comprar acciones es un problema de subarrays máximos?

Creo que la pregunta es decir que en la matriz los valores almacenados no son los valores de stock, sino los cambios en el valor de stock. Por lo tanto, la suma de una submatriz de los índices i a j representa la ganancia (o pérdida si es negativa) que obtendría si comprara al comienzo del día i y vendiera al comienzo del día j.

Si los valores de stock reales se almacenaron en la matriz, por supuesto, la pregunta sigue siendo la misma. Como usted dice, el objetivo sería encontrar la mayor diferencia entre los valores, excepto que existe la restricción de que el valor anterior debe ser menor que el valor posterior, ya que debe comprar antes de vender. Entonces, la forma más fácil de resolverlo es convertirlo en una matriz de cambio de stock como se indicó anteriormente.

Solo para aclarar la pregunta es decir que solo compra una unidad de existencias, no una por día. En caso de que eso te haya confundido, lo que puedo haber basado en tu pregunta.

Creo que esta es probablemente una simplificación excesiva, deliberada y excesiva para fines de ejercicio, y no un enfoque práctico. Aquí hay una introducción al problema visto desde una perspectiva ML (rudimentaria):

Supongamos que buy_price ‘a’ y sell_price ‘e’ le dan el beneficio máximo y los precios en el día intermedio sean ‘b’, ‘c’ y ‘d’:

precio: ……… .., a, b, c, d, e, ………….

Ahora considere la variedad de cambios en el precio de la siguiente manera:

change_in_price:… .., (ba), (cb), (dc), (ed),… ..

  1. max_profit = ea;
  2. ea = (ba) + (cb) + (dc) + (ed) = max_profit;

(ba) + (cb) + (dc) + (ed) no es más que la suma de la matriz (ba) hasta (ed)

es decir, una submatriz de la matriz change_in_price que tiene la suma máxima;

¡espero que esto ayude!