Есть Задача:
Написать функцию, которая на входе принимает массив из целых чисел и определяет возможно ли получить ряд чисел, выстроенных по возрастанию, удалив из данного массива максимум один элемент (без дополнительной сортировки).
Пример:
[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]
подаскажите, где может быть ошибка
Спасибо
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как определить реальные координаты x и y, ширину и высоту у элемента DIV, даже если они не заданы стилями?
Возникла проблема при добавлении компонента модального окна в angular 2Окно создается, но не диалоговое
как в js возжожно реализовать покадровое замедление/ускорение анимации(easing), для остановленной временной шкалы? не постепенную отрисовку...
У меня есть таблица, заполняю из Базы данныхУ каждой строки есть кнопка Edit, которая открывает модальную форму