Учитывая список чисел только с 3 уникальными числами (1, 2, 3), отсортируйте список за O (n) время. Плюс сортируйте массив, используя постоянное пространство O (1) .
Пример:
Input: [3, 3, 2, 1, 3, 2, 1]
Output: [1, 1, 2, 2, 3, 3, 3]
Здесь решение, которое я принял (не является пробелом O (1) и имеет пустые пробелы в массиве ..): Что делает эта функция простой ... увеличивает размер расположения в два раза в случаечто все его элементы равны 2;Затем он переходит к своей предыдущей длине (current / 2) для сортировки своих элементов. Если он равен 1, он ничего не делает, если он находит 2, он помещает его в предыдущую максимальную длину +1, он увеличивает переменную len и удаляетэлемент и если это 3, нажмите и удалите элемент .. тогда у вас есть пустые места в массиве, и вы не встретите плюс проблемы, но это O (n).
function sort(list) {
let len = list.length;
list.length=len*2
for(let i=0; i<list.length/2; i++){
let n=list[i]
if(n==2){
list[len]=n
delete list[i]
len++
}else if(n==3){
list.push(n)
delete list[i]
}
}
return list
}
console.log(sort([1,2,3,2,1,1]))