Проверка на сортировку
Есть массив с числами, нужно проверить есть ли в массиве элемент, удалив который массив будет отсортирован по возростанию.(убрать можно только одно число, в любых других случаях должен быть false) На пример: [1,3,2] если убрать 3, то массив будет по возростанию. Есть 4 варианта для которых код должен быть правильным:
[1,3,2]-true
[2,4,2,1]-false
[5,5,5,5,5]-false
[5,6,7]-true
мой код:
function solution(x){
return x.sort((a,b)=>a-b)?true:false
for(let i=0;i<x.length;i++){
if(x.splice(i)===x.sort((a,b)=>a-b)){
return true
}
return false
}
}
Ответы (1 шт):
Автор решения: teran
→ Ссылка
вариация на тему
function check(v){
return 1 >= v.reduce((acc, c) => (c > acc.m ? acc.m = c : acc.x++, acc),
{ m: Number.MIN_VALUE, x:0 }
).x;
}
const data = [
[1,3,2],
[2,4,2,1],
[5,5,5,5,5],
[5,6,7]
];
data.forEach(d => console.log(d, check(d)));