Ja zrobiłem to w taki sposób:
def second(numbers):
my_max = {
"start": -1,
"end": -1,
"length": 0
}
i = 1
while i < len(numbers) - 1:
diff = abs(numbers[i] - numbers[i - 1])
start = i - 1
end = i + 1
while end < len(numbers):
if abs(numbers[end] - numbers[end - 1]) == diff:
end += 1
else:
break
if end - start > my_max["length"]:
my_max["start"] = numbers[start]
my_max["end"] = numbers[end - 1]
my_max["length"] = end - start
i = end
return my_max
Może nie jest to najlepsze rozwiązanie (tym bardziej Pythonowe) jakie może być, ale wynik się zgadza więc może znajdziesz w moim rozwiązaniu jakiś trop który przyniesie Ci jakiś pomysł jak to rozwiązać.