Medium
Count Number of Maximum Bitwise-OR Subsets — Python
Full explanation · Time O(min(2^n, m * n)) · Space O(min(2^n, m))
# Time: O(min(2^n, m * n)), m is the 'bitwise or' of nums
# Space: O(min(2^n, m))
import collections
class Solution(object):
def countMaxOrSubsets(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
dp = collections.Counter([0])
for x in nums:
for k, v in dp.items():
dp[k|x] += v
return dp[reduce(lambda x, y: x|y, nums)]