Sobes.tech
Middle+

Napraw metodę, która zwraca maksymalną długość ciągu, w którym każdy kolejny element zwiększa się o 1, w podanej tablicy liczb całkowitych. Jeśli lista składa się z 1 elementu, długość ciągu wynosi 1.

sobes.tech AI

Odpowiedź od 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.