#+title: boyer-moore #+date: <2018-06-04> The [[https://en.wikipedia.org/wiki/Boyer–Moore_majority_vote_algorithm][Boyer-Moore algorithm for finding the majority of a sequence of elements]] falls in the category of "very clever algorithms". #+begin_src c++ int majorityElement(vector& xs) { int count = 0; int maj = xs[0]; for (auto x : xs) { if (x == maj) count++; else if (count == 0) maj = x; else count--; } return maj; } #+end_src