Menu
CoddyTech

Stock Span Problem

Obtienes el precio de cierre de una acción cada día: prices[i] es el precio del día i. El período del día i es el número de días consecutivos, que termina en el día i y lo incluye, durante los cuales el precio fue menor o igual que prices[i].

Devuelve el período de cada día, en el mismo orden que prices. Cada período es de al menos 1, porque un día siempre se cuenta a sí mismo.

Función

stockSpan(prices: integer-array) → integer-array
pricesinteger-array
el precio de cada día, en orden
Devuelveinteger-array
el lapso de cada día, en el mismo orden

Restricciones

  • 1 ≤ prices.length ≤ 104
  • 1 ≤ prices[i] ≤ 105
  • Un día anterior con el mismo precio cuenta para el intervalo; solo un precio estrictamente más alto lo detiene.

Ejemplos

Entrada
prices = [31, 27, 14, 21, 30, 18, 40]
Salida
[1, 1, 1, 2, 4, 1, 7]
Explicación
El día 3, en 21, retrocede hasta 14 y se detiene en 27: amplitud 2. El día 4, en 30, se detiene en 31: amplitud 4. El día 6, en 40, supera todos los precios anteriores y cubre los 7 días.
challenge icon

Para ir más allá

Ahora los precios llegan de uno en uno, y debes informar cada intervalo a medida que llega su precio. ¿Qué enfoque sigue funcionando y qué conserva entre llamadas?

Restablecer código
def stockSpan(prices):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumento

prices = [31, 27, 14, 21, 30, 18, 40]

Salida Esperada

[1, 1, 1, 2, 4, 1, 7]