Ускорение этого кода для функции codefighters javascript firstDuplicate ()

Ускорение этого кода для функции codefighters javascript firstDuplicate ()

Примечание. Напишите решение с O (n) сложностью по времени и O (1) дополнительным пространственным сложностью, поскольку это то, что вам будет предложено сделать во время реального интервью.

Учитывая массив a, который содержит только числа в диапазоне от 1 до a.length, найдите первый дубликат числа, для которого второе вхождение имеет минимальный индекс. Другими словами, если имеется более 1 дублированного числа, вернуть номер, для которого второе вхождение имеет меньший индекс, чем второе вхождение другого числа. Если таких элементов нет, вернуть -1.

пример

Для a = [2, 3, 3, 1, 5, 2] вывод должен быть firstDuplicate (a) = 3.

Есть 2 дубликата: номера 2 и 3. Второй случай 3 имеет меньший индекс, чем второй случай 2, поэтому ответ 3.

Для a = [2, 4, 3, 5, 1] ​​вывод должен быть firstDuplicate (a) = -1.

Итак, вот что я придумала. Это работает, но не проходит в финальном тесте, потому что он работал более 4000 мс. Я в растерянности относительно того, что еще я могу сделать. Есть идеи по улучшению скорости?

Это была моя вторая попытка, но она все равно провалилась на последнем тесте …

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector