Todos los desafíos
Intermedio 0 resueltos 0% de aceptación

Valor Menor Más Cercano a la Izquierda

Para cada número, encuentra la posición anterior más cercana que contenga un número estrictamente menor.

Para cada número, encuentra la posición anterior más cercana que contenga un número estrictamente menor. Los números iguales no califican. Las posiciones comienzan en 1; usa 0 cuando no haya un número menor a la izquierda.

Implementa nearest_smaller_value(numbers).

Entrada

numbers: Números en su orden original.

Salida

Devuelve una posición anterior (o 0) para cada valor de entrada.

Restricciones

0…200,000 enteros, cada uno entre −1,000,000,000 y 1,000,000,000. Una entrada vacía devuelve una lista vacía.

Ejemplos

Ejemplo 1
Entrada:
numbers = [4, 2, 5, 3]

Salida esperada:
expected = [0, 0, 2, 2]
Entrada:
std::vector<long long> numbers = {4, 2, 5, 3};

Salida esperada:
std::vector<long long> expected = {0, 0, 2, 2};
Entrada:
long[] numbers = new long[] {4, 2, 5, 3};

Salida esperada:
long[] expected = new long[] {0, 0, 2, 2};

Explicación

4 no tiene ningún valor anterior y 2 no tiene ningún valor menor a la izquierda. Tanto 5 como 3 encuentran el valor 2 en la posición 2.

Ejemplo 2
Entrada:
numbers = [2, 2, 2]

Salida esperada:
expected = [0, 0, 0]
Entrada:
std::vector<long long> numbers = {2, 2, 2};

Salida esperada:
std::vector<long long> expected = {0, 0, 0};
Entrada:
long[] numbers = new long[] {2, 2, 2};

Salida esperada:
long[] expected = new long[] {0, 0, 0};

Explicación

Los valores anteriores iguales no son estrictamente menores. Todas las respuestas son 0.

Referencias

Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.