Guest User

Untitled

a guest
May 23rd, 2024
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.87 KB | None | 0 0
  1. class Solution:
  2.     def beautifulSubsets(self, nums, k):
  3.         n: int = len(nums)
  4.        
  5.         stack: list[tuple[int, int]] = [(0, 0)]
  6.         # index, mask
  7.        
  8.         ans: int = 0
  9.         while stack:
  10.             index, mask = stack.pop()
  11.             if index == n:
  12.                 ans += 1
  13.             else:
  14.                 is_beautiful: bool = True
  15.                 for j in range(index):
  16.                     if not (
  17.                             ((1 << j) & mask) == 0
  18.                             or
  19.                             abs(nums[j] - nums[index]) != k
  20.                     ):
  21.                         is_beautiful = False
  22.                         break
  23.                 if is_beautiful:
  24.                     stack.append((index+1, mask+(1<<index)))
  25.                 stack.append((index+1, mask))
  26.         return ans - 1  # remove empty subset    
Advertisement
Add Comment
Please, Sign In to add comment