Есть Задача:
Написать функцию, которая на входе принимает массив из целых чисел и определяет возможно ли получить ряд чисел, выстроенных по возрастанию, удалив из данного массива максимум один элемент (без дополнительной сортировки).
Пример:
[1, 3, 2, 1], функция вернет false, поскольку в данном случае при удалении любого числа, оставшиеся числа не будут расположены по возрастанию[1, 3, 2], функция вернет true, поскольку в данном случае при удалении 3 или 2, оставшиеся числа будут расположены по возрастанию: [1,2] или [1,3] соответственно.Вот примерное решение
function a(arr) {
for (var i = 0; i < arr.length; i++) {
arr.splice(i, 1);
if (compare(arr)) {
return true;
}
}
function compare(array) {
for (var j = 0; j < array.length; j++) {
if (array[j] > array[j + 1]) {
return false;
}
}
return true;
}
return false;
}
Но при массиве, скажем [1, 1, 1] возвращает true или при других явно не правильных последовательностях тоже true
Здесь false, хотя должно быть true [3, 6, 8, 1]
подаскажите, где может быть ошибка
Спасибо
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости