Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #51 (permalink)  
Старый 04.08.2018, 10:36
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

N указано, или это максимальный элемент в массиве?
Ответить с цитированием
  #52 (permalink)  
Старый 04.08.2018, 10:41
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Alexandroppolus,
н не указано, длинна максимальная до 30.000.000
есть метка 1 <= кол-во пропущенных <= 10
но встречалось и больше почему-то.
Ответить с цитированием
  #53 (permalink)  
Старый 04.08.2018, 10:53
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Вот так проскочило:
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 раз добавлять новые индексы, то массив меняет свой размер (меняются внутренние свойства, что приводит к очень долгому вычислению и изменению внутреннего состояния массива)
Ответить с цитированием
  #54 (permalink)  
Старый 04.08.2018, 11:01
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Malleys,
так не проходит, до 30.000.000 там 2 теста, это решение крайне редко успевает первый выполнить.
эта ката (Hardcore version)
м.б. вы решали без этой метки?
Ответить с цитированием
  #55 (permalink)  
Старый 04.08.2018, 11:06
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Malleys,
а вот, Вижу, у вас прокатило. а с какой попытки?
Ответить с цитированием
  #56 (permalink)  
Старый 04.08.2018, 11:17
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Когда было `const present = [], result = [];`, то всегда не хватало времени, когда поменял на `const present = new Array(arr.length), result = [];`, то через один-пару раз проходит, иногда много раз не проходит, иногда больше проходит, чем не проходит...
Ответить с цитированием
  #57 (permalink)  
Старый 04.08.2018, 11:21
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Malleys,
Ответить с цитированием
  #58 (permalink)  
Старый 04.08.2018, 11:23
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Может, попробовать Uint8Array ?
Ответить с цитированием
  #59 (permalink)  
Старый 04.08.2018, 11:31
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Alexandroppolus,
есть такая тема
Ответить с цитированием
  #60 (permalink)  
Старый 04.08.2018, 12:21
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

рони,
ваше решение будет стабильно проходить если:

for (var c = Array(b.length).fill(0), a = 0; a < b.length; a++) c[b[a]] = true;

без .fill(0) борода! вот такой парадокс
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тестовое задание Yandex xShift Общие вопросы Javascript 22 17.02.2018 21:53
Задание с SIP heeel Firefox/Mozilla 0 12.06.2017 01:12
Интересное задание "Поединок" помогите решить Anton27 Общие вопросы Javascript 1 23.05.2017 22:24
Тестовое задание. Дайте идею. FINoM Оффтопик 14 28.03.2011 10:09
Помогите сделать тестовое задание начального уровня по js makregistr Работа 1 16.12.2010 14:26