Algorytmy i struktury danych · Middle · Pytanie 72 z 75
Co robi ta funkcja i jaka jest jej złożoność?
function f(nums) {
const seen = new Set(nums);
let best = 0;
for (const x of seen) {
if (seen.has(x - 1)) continue;
let len = 1;
while (seen.has(x + len)) len++;
best = Math.max(best, len);
}
return best;
}- ✓Poprawna odpowiedź: Najdłuższa seria kolejnych liczb, O(n)
- 2Liczba duplikatów, O(n²)
- 3Największa liczba w tablicy, O(n log n)
Wyjaśnienie
Serię liczy się tylko od jej najmniejszej liczby (gdy brakuje x - 1), więc każda liczba jest sprawdzana w pętli wewnętrznej najwyżej raz. Sortowanie dałoby O(n log n).