Blog

Twoja wymarzona praca? Lets Git IT.
Interaktywna platforma przygotowująca do rozmów technicznych dla nowoczesnych programistów.

XGitHub

Platforma

  • Kategorie

Zasoby

  • Blog
  • O aplikacji
  • FAQ
  • Sugestie

Prawne

  • Polityka prywatności
  • Regulamin

© 2025 LetsGit.IT. Wszelkie prawa zastrzeżone.

LetsGit.IT/Kategorie/Algorytmy
Algorytmymedium

Boyer–Moore majority vote: co rozwiązuje i jaka jest główna idea?

Tagi
#majority-vote#array#linear-time#constant-space
Wróć do kategoriiPrzejdź do quizu

Odpowiedź

Znajduje element występujący więcej niż n/2 razy (jeśli istnieje). Idea polega na „kasowaniu” par różnych elementów; pozostały kandydat to większość. Działa w O(n) czasu i O(1) pamięci.

function majority(nums: number[]): number {
  let cand = 0;
  let count = 0;
  for (const x of nums) {
    if (count === 0) cand = x;
    count += x === cand ? 1 : -1;
  }
  return cand;
}

Powiązane pytania

Algorytmy
Jaki problem rozwiązuje algorytm Kadane’a?
#kadane#dynamic-programming#array
Algorytmy
Na czym polega technika two pointers?
#two-pointers#array#technique
Struktury danych
Różnica między tablicą a listą wiązaną?
#array#linked-list#comparison