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