Middle+
Υλοποιήστε μια λειτουργία φιλτραρίσματος διπλοτύπων σε γραμμικό χρόνο O(n) χωρίς χρήση Set, χρησιμοποιώντας ένα αντικείμενο ως κατακερματιστή πίνακα.
sobes.tech AI
Απάντηση από 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 хранит уже встреченные элементы в качестве ключей, что позволяет быстро проверять наличие элемента и добавлять только уникальные значения в итоговый массив.