@gsdev99

Как проверить массив на монотонность?

Всем привет, как проверить массив на монотонность?
В круглых скобках входные данные, далее результат.
// ([0, 1, 5, 9, 15]) => true
// ([0, 1, 1, 5, 9, 9, 15]) => true
// ([15, 8, 4, 2, 1]) => true
// ([0, 1, 5, 15, 4]) => false
  • Вопрос задан
  • 147 просмотров
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
const isMonotone = arr => new Set(arr.map((n, i) => !i ? 0 : Math.sign(n - arr[i - 1]))).size < 3;
Ответ написан
RAX7
@RAX7
function check(arr) {
  let seqGrow = 0;
  for (let i = 1; i < arr.length; i++) {
    const pairGrow = Math.sign(arr[i] - arr[i - 1]);

    if (pairGrow === 0) {
      continue;
    }

    seqGrow = seqGrow || pairGrow;

    if (pairGrow !== seqGrow) {
      return false;
    }
  }
  return true;
}

console.log(check([0, 1, 5, 9, 15]));
console.log(check([0, 1, 1, 5, 9, 9, 15]));
console.log(check([15, 8, 4, 2, 1]));
console.log(check([0, 1, 5, 15, 4]));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы