Sobes.tech
Назад к вопросам
Middle+
2

Реализуй функцию фильтрации дубликатов за линейное время O(n) без использования Set, используя объект как хэш-таблицу.

Компании, где спрашивали
Tilda

Ответ от нейросети

sobes.tech AI

Вот пример функции на JavaScript, которая фильтрует дубликаты из массива за линейное время O(n), используя объект как хэш-таблицу, без использования Set:

function filterDuplicates(arr) {
  const seen = {};
  const result = [];

  for (let i = 0; i < arr.length; i++) {
    const item = arr[i];
    if (!seen[item]) {
      seen[item] = true;
      result.push(item);
    }
  }

  return result;
}

// Пример использования:
const data = [1, 2, 3, 2, 4, 1, 5];
console.log(filterDuplicates(data)); // [1, 2, 3, 4, 5]

Здесь объект seen хранит уже встреченные элементы в качестве ключей, что позволяет быстро проверять наличие элемента и добавлять только уникальные значения в итоговый массив.