Imagine que obtenemos una porción de una región montañosa, esto daría como resultado una forma similar a esta:
4 _
3 _ _ __/ \
2 / \__/ \ _/ \_ /
1 / \ / \_/
0 \/
12322223210012233343221112
Como podemos ver, podemos representar esto (hasta cierto punto) con una secuencia de enteros.
Para el propósito de este desafío, definimos un valle como una subsecuencia contigua donde los valores inicialmente están disminuyendo y desde algún punto están aumentando. Más formalmente para una secuencia un valle será índices para los cuales se cumple lo siguiente:
- El inicio y el punto final del valle son los mismos:
- el valle comienza y termina una vez que la región baja:
- el valle no es plano:
- el valle inicialmente disminuye:
- el valle aumentará en algún momento:
Ahora definimos el ancho de dicho valle como el tamaño de los índices , es decir. .
Desafío
Dado un perfil de altura (secuencia de enteros no negativos), su tarea es determinar el ancho del valle más ancho.
Ejemplo
Dado el perfil de altura [1,2,3,2,2,2,2,3,2,1,0,0,1,2,2,3,3,3,4,3,2,2,1,1,1,2], podemos visualizarlo como antes:
4 _
3 _ _ __/ \
2 / \__/ \ _/ \_ /
1 / \ / \_/
0 \/
12322223210012233343221112
aaaaaa ccccc
bbbbbbbbb
Observe cómo el segundo valle [3,2,1,0,0,1,2,2,3]no se extiende más hacia la derecha porque el punto más a la izquierda es y no . Además, no agregamos los dos s restantes porque requerimos que el punto final esté más arriba que el segundo y último punto.
Por lo tanto, el ancho del valle más ancho es .
Reglas
- La entrada será una secuencia de enteros no negativos (lo siento, holandeses)
- puedes asumir que siempre hay al menos un valle
- La salida será el tamaño del valle más ancho como se definió anteriormente
Casos de prueba
[4,0,4] -> 3
[1,0,1,0,1] -> 3
[1,0,2,0,1,2] -> 4
[13,13,13,2,2,1,0,1,14,2,13,14] -> 4
[1,2,3,2,2,2,2,3,2,1,0,0,1,2,2,3,3,3,4,3,2,2,1,1,1,2] -> 9
[3,2,0,1,0,0,1,3] -> 4
[3,1,2,3]. ej. )
[4,0,4]sería un caso así.
[3,2,0,1,0,0,1,3]. Todas las respuestas actuales devuelven 8, según su definición, creo que debería ser 4.