Middle+
Ispravite metodu koja vraća maksimalnu dužinu niza u kojem se svaki sledeći element povećava za 1, u datom nizu celih brojeva. Ako lista sadrži 1 element, dužina niza je 1.
sobes.tech АИ
Одговор од АИ
Задача — найти максимальную длину последовательности в массиве, где каждый следующий элемент увеличивается ровно на 1.
Пример исправленного метода на JavaScript:
function maxIncreasingSequenceLength(arr) {
if (arr.length === 0) return 0;
if (arr.length === 1) return 1;
let maxLen = 1;
let currentLen = 1;
for (let i = 1; i < arr.length; i++) {
if (arr[i] === arr[i - 1] + 1) {
currentLen++;
if (currentLen > maxLen) {
maxLen = currentLen;
}
} else {
currentLen = 1;
}
}
return maxLen;
}
// Пример использования:
console.log(maxIncreasingSequenceLength([1, 2, 3, 5, 6, 7, 8, 10])); // 4 (последовательность 5,6,7,8)
console.log(maxIncreasingSequenceLength([10])); // 1
Логика:
- Идём по массиву с 1-го элемента.
- Если текущий элемент равен предыдущему + 1, увеличиваем счётчик текущей последовательности.
- Иначе сбрасываем счётчик.
- Отслеживаем максимальную длину последовательности.
Так мы получаем максимальную длину строго возрастающей последовательности с шагом 1.