Sekcja DSAŁatwe

Głosowanie Boyera Moore’a

Szczegółowy przewodnik i implementacja Python dla problemu „Boyer Moore Voting”.

Oświadczenie o problemie

Łatwe

Napisz funkcję boyer_moore_majority(arr), która implementuje algorytm głosowania większością Boyera-Moore'a, aby znaleźć element większościowy (element, który pojawia się więcej niż n // 2 razy) na liście liczb całkowitych arr. Jeśli nie istnieje żaden element większościowy, zwróć -1.

Ograniczenia
  • 1 <= len(arr) <= 5 * 10^4
  • -10^9 <= arr[i] <= 10^9

Przykłady

Example 1
Input
arr = [1, 1, 1, 2, 2]
Output
1
Explanation

1 appears 3 times which is greater than 5 // 2 = 2 times.

Example 2
Input
arr = [1, 2, 3]
Output
-1
Explanation

No element appears more than 3 // 2 = 1 time.

Need a Hint?
Rozważ użycie struktur danych specyficznych dla tablic, takich jak zestawy lub sterty.
Edge Cases to Watch
  • Puste struktury wejściowe
  • Wejścia jednoelementowe
  • Duże granice liczbowe

Gotowy do rozwiązania?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Otwórz w Edytorze
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.