我正在测试集合是否对所有子集都有效。我知道它会给出 TLE 但它给出了错误的答案代码中的问题是什么。 问题链接
class Solution:
def beautifulSubsets(self, nums: List[int], k: int) -> int:
n = len(nums)
val = pow(2,n)-1
res = 0
invalidset = defaultdict(int)
while(val):
x = val ;
invalidset.clear()
i = 0
while(i<n):
if(x&1 ):
if(invalidset[ nums[i]-k ] == 0 and invalidset[ k-nums[i] ] == 0 ) :
invalidset[nums[i]] += 1;
else:break;
x >>=1
i+=1
if(i==n): res += 1
val -=1
return res;
Wrong Answer
Runtime: 5385 ms
Input
nums = [15,6,3,25,14,29,21,16,28,23,11,9,4,30,24,12,26,1,27,18]
k = 7
Output
172799
Expected
163839
我什么都试过了。但无法理解为什么这是错误的。