N указано, или это максимальный элемент в массиве?
|
Alexandroppolus,
н не указано, длинна максимальная до 30.000.000 есть метка 1 <= кол-во пропущенных <= 10 но встречалось и больше почему-то. :( |
Вот так проскочило:
function missNumsFinder(arr) { const present = new Array(arr.length), result = []; for(let i = 0, { length } = arr; i < length; ) { present[arr[i++]] = true; } for(let i = 1, { length } = present; ; ) { while(i in present) i++; if(i >= length) break; result.push(i++); } return result; } Изначально у меня было const present = [], result = [];Но если там около 30000000 раз добавлять новые индексы, то массив меняет свой размер (меняются внутренние свойства, что приводит к очень долгому вычислению и изменению внутреннего состояния массива) |
Malleys,
так не проходит, до 30.000.000 там 2 теста, это решение крайне редко успевает первый выполнить. эта ката (Hardcore version) м.б. вы решали без этой метки? |
Malleys,
а вот, Вижу, у вас прокатило. а с какой попытки? |
Когда было `const present = [], result = [];`, то всегда не хватало времени, когда поменял на `const present = new Array(arr.length), result = [];`, то через один-пару раз проходит, иногда много раз не проходит, иногда больше проходит, чем не проходит...
|
Malleys,
:) |
Может, попробовать Uint8Array ?
|
Alexandroppolus,
есть такая тема :) |
рони,
ваше решение будет стабильно проходить если: for (var c = Array(b.length).fill(0), a = 0; a < b.length; a++) c[b[a]] = true; без .fill(0) борода! вот такой парадокс |
Часовой пояс GMT +3, время: 12:39. |