Sobes.tech
Back to questions
Middle+
7

Исправить метод, который возвращает максимальную длину последовательности, в которой каждый следующий элемент увеличивается на 1, в заданном массиве целых чисел. Если список состоит из 1 элемента, то длина последовательности равна 1.

Companies where asked
Т-БанкТ-Банк

Answer from AI

sobes.tech AI

Задача — найти максимальную длину последовательности в массиве, где каждый следующий элемент увеличивается ровно на 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.