Дан слайс целых чисел. Найдите длину самого длинного подмассива (непрерывного
куска), который строго возрастает или строго убывает. Равные соседи разрывают
монотонность.
// LongestMonotonic возвращает длину самого длинного строго возрастающего
// или строго убывающего подмассива.
func LongestMonotonic(nums []int) int
Примеры
LongestMonotonic([]int{16, 12, 13, 14, 15, 11, 17}) // 4: 12 13 14 15
LongestMonotonic([]int{13, 13, 13, 13}) // 1
LongestMonotonic([]int{13, 12, 11}) // 3
LongestMonotonic([]int{}) // 0
Ограничения: 0 <= len(nums) <= 10^6. Один проход, O(1) дополнительной памяти.
Устно: чем подмассив отличается от подпоследовательности? Как изменится задача,
если нужна самая длинная возрастающая подпоследовательность?
Разбор и эталонное решение — после своей попытки: на собеседовании подсказок не будет.
Сначала попробуй сам — подсказки не дают готовый ответ.