leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
2044.cpp (486B)
0 class Solution { 1 int rec(const vector<int> &nums, const int maxi, int crnt = 0, int idx = 0) { 2 if (idx == nums.size()) return crnt == maxi; 3 if (crnt == maxi) return 1 << (nums.size() - idx); 4 return rec(nums, maxi, crnt, idx + 1) + rec(nums, maxi, crnt | nums[idx], idx + 1); 5 } 6 7 public: 8 int countMaxOrSubsets(const vector<int> &nums) { 9 int maxi = 0; 10 for (int n : nums) 11 maxi |= n; 12 return rec(nums, maxi); 13 } 14 };