Skip to content

Commit 7ebb7eb

Browse files
authored
Update count-the-number-of-square-free-subsets.py
1 parent 3611914 commit 7ebb7eb

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

Python/count-the-number-of-square-free-subsets.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ def linear_sieve_of_eratosthenes(n): # Time: O(n), Space: O(n)
5656
import collections
5757

5858

59-
# number theory, combinatorics, backtracking, memoization, bitmasks
59+
# number theory, combinatorics, bitmasks, memoization
6060
class Solution2(object):
6161
def squareFreeSubsets(self, nums):
6262
"""
@@ -94,13 +94,13 @@ def linear_sieve_of_eratosthenes(n): # Time: O(n), Space: O(n)
9494
cnt = collections.Counter(nums)
9595
arr = [x for x in cnt.iterkeys() if x != 1]
9696
dp = [[-1]*(1<<len(PRIMES)) for i in xrange(len(arr))]
97-
def backtracking(i, mask):
97+
def memoization(i, mask):
9898
if i == len(arr):
9999
return 1
100100
if dp[i][mask] == -1:
101-
dp[i][mask] = backtracking(i+1, mask)
101+
dp[i][mask] = memoization(i+1, mask)
102102
if MASKS[arr[i]] and MASKS[arr[i]]&mask == 0:
103-
dp[i][mask] = (dp[i][mask]+cnt[arr[i]]*backtracking(i+1, mask|MASKS[arr[i]]))%MOD
103+
dp[i][mask] = (dp[i][mask]+cnt[arr[i]]*memoization(i+1, mask|MASKS[arr[i]]))%MOD
104104
return dp[i][mask]
105105

106-
return (backtracking(0, 0)*pow(2, cnt[1], MOD)-1)%MOD if 1 in cnt else (backtracking(0, 0)-1)%MOD
106+
return (memoization(0, 0)*pow(2, cnt[1], MOD)-1)%MOD if 1 in cnt else (memoization(0, 0)-1)%MOD

0 commit comments

Comments
 (0)