美丽子集问题leetcode错题答案

问题描述 投票:0回答:0

我正在测试集合是否对所有子集都有效。我知道它会给出 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

我什么都试过了。但无法理解为什么这是错误的。

python-3.x subset bitmask
© www.soinside.com 2019 - 2024. All rights reserved.