Как проверить массив, является ли он непрерывно возрастающим

Рейтинг: 1Ответов: 1Опубликовано: 14.02.2023

Задание звучит так. "Реализуйте и экспортируйте по умолчанию функцию, которая проверяет, является ли переданная последовательность целых чисел возрастающей непрерывно (не имеющей пропусков чисел). Например, последовательность [4, 5, 6, 7] — непрерывная, а [0, 1, 3] — нет. Последовательность может начинаться с любого числа, главное условие — отсутствие пропусков чисел. Шаг последовательности равен 1. Последовательность из одного числа не может считаться возрастающей."

Вот мое решение, но оно проходит один тест и падает. Помогите разобраться, пожалуйста

const isContinuousSequence = (array) => {
  if (array.length === 1 || array.length === 0) {
    return false;
  }
  if (array[array.length - 1] <= array[array.length - 2]) {
    return false;
  }
  for (let i = 1; i < array.length - 1; i += 1) {
    if (array[i] < array[i - 1] || array[i - 1] === array[i]) {
      return false;
    }
  } return true;
};
export default isContinuousSequence;

Ответы

▲ 3Принят

У вас ряд ошибок в проверках.

Реализуйте фукнцию проверки последовательно и согласно условиям(например вы не проверяете, что разница между соседними элементами равна 1).

Ниже пример реализации данной фукнции

const isContinuousSequence = (array) => {
  if (array.length < 2) return false; //Если меньше 2х элементов

  for (let i = 1; i < array.length; i++) {
    if (array[i] - array[i-1] !== 1) return false; //Если разница не 1
  }
  return true; // успех
};

console.log(isContinuousSequence([1,2,3,4]))
console.log(isContinuousSequence([1,2,3,4,6]))
console.log(isContinuousSequence([5,6,7,8]))
console.log(isContinuousSequence([]))
console.log(isContinuousSequence([3]))