leetcode

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