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;
}

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).

Do poczytania

Błąd w pytaniu

Algorytmy i struktury danych · Middle · pytanie 72

Sprawdź się

Rozwiąż test Algorytmy i struktury danych · Middle: pytania i odpowiedzi są tasowane, a na końcu czeka przegląd błędów.

Rozwiąż ten test