leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
0229.cpp (747B)
0 class Solution {
1 public:
2 vector<int> majorityElement(vector<int> &nums) {
3 int a = -1, b = -1, ca = 0, cb = 0;
4 for (const int n : nums) {
5 if (n == a)
6 ca++;
7 else if (b == n)
8 cb++;
9 else if (!ca)
10 a = n, ca = 1;
11 else if (!cb)
12 b = n, cb = 1;
13 else
14 ca--, cb--;
15 }
16 ca = cb = 0;
17 for (const int n : nums) {
18 if (n == a)
19 ca++;
20 else if (n == b)
21 cb++;
22 }
24 vector<int> res;
25 if (ca > nums.size() / 3) res.push_back(a);
26 if (cb > nums.size() / 3) res.push_back(b);
27 return res;
28 }
29 };