Demigodd
@Demigodd

HackerRank выдает ошибку в гениальном решении, что не так с этой задачей?

Описание задачи
И решение задачи
function modifySequence(arr) {
  if (!arr.length || arr.length === 1) {
    return 0;
  }

  let swaps = 0;

  for (let i = 1; i < arr.length; i++) {
    if (arr[i] <= arr[i - 1]) {
      arr[i] = arr[i - 1] + 1;
      swaps++;
    }
  }

  return swaps;
}

console.log(modifySequence([1, 7, 10, 2, 2])); // 2
console.log(modifySequence([1, 2, 2, 3, 4])); // 3
console.log(modifySequence([1, 7, 10, 2, 20, 22])); // 1
console.log(modifySequence([1, 7, 10, 2, 1, 20, 22])); // 2
console.log(modifySequence([4, 10, 20])); // 0
console.log(modifySequence([
  540162997,   705949,  794,  1000000000,  3466311,
  601139,  38172,  73045,  92,  99,  46087528,
  1000000000,  4876, 25150656, 1059, 16, 1000000000,
  29, 318352140, 7, 548714, 86, 1838944
])); // 21


В последнем примере Test Case хакер ранка выдает ошибку что ожидаемый результат - 18
Хотя если посчитать количество чисел которую можно заменить, чтобы получилась идеальная последовательность, то все правильно, результат 21

В чем я ошибаюсь?
Помощник
Даже Chat GPT не помог)
  • Вопрос задан
  • 178 просмотров
Пригласить эксперта
Ответы на вопрос 1
Alexandroppolus
@Alexandroppolus
кодир
На массиве [4,2,3] твой, безусловно, гениальный способ сделает две замены, а можно обойтись одной.
Там требуется минимум действий.
Ответ написан
Ваш ответ на вопрос

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

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