Представьте, что мы получили кусочек какой-то горной области, это привело бы к форме, подобной этой:
4 _
3 _ _ __/ \
2 / \__/ \ _/ \_ /
1 / \ / \_/
0 \/
12322223210012233343221112
Как мы видим, мы можем представить это (в определенной степени) с помощью последовательности целых чисел.
Для этой задачи мы определяем долину как непрерывную подпоследовательность, где значения изначально уменьшаются и с некоторой точки они увеличиваются. Более формально для последовательности долиной будут индексы для которых выполняется следующее:
- начало и одинаковы:
- долина начинается и заканчивается, когда регион становится ниже:
- долина не плоская:
- долина изначально уменьшается:
- долина в какой-то момент увеличится:
Теперь определим ширину такой долины как размер индексов , т.е. .
Вызов
Учитывая профиль высоты (последовательность неотрицательных целых чисел), ваша задача - определить ширину самой широкой впадины.
пример
Учитывая профиль высоты [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], мы можем визуализировать его как прежде:
4 _
3 _ _ __/ \
2 / \__/ \ _/ \_ /
1 / \ / \_/
0 \/
12322223210012233343221112
aaaaaa ccccc
bbbbbbbbb
Обратите внимание, что вторая долина [3,2,1,0,0,1,2,2,3]не распространяется дальше вправо, потому что крайняя левая точка - а не . Кроме того, мы не добавляем оставшиеся две с, потому что мы требуем, чтобы конечная точка была выше, чем вторая-последняя точка.
Поэтому ширина самой широкой долины равна .
правила
- На входе будет последовательность неотрицательных (извините голландцев) целых чисел
- можно предположить, что всегда есть хотя бы одна долина
- На выходе будет размер самой широкой долины, как определено выше
Testcases
[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])
[4,0,4]был бы такой случай.
[3,2,0,1,0,0,1,3]. Все текущие ответы возвращают 8, по вашему определению я считаю, что это должно быть 4.