2151. Maximum Good People Based on Statements - LeetCode Solution


Array Bit Masking

Python Code:

class Solution:
    def maximumGood(self, statements: List[List[int]]) -> int:
        n=len(statements)
        ans=0
        def check(mask):
            for i in range(n):
                if mask & (1<<i)!=0: good.add(i)
            for i in range(n):
                if i in good:
                    for j in range(n):
                        if statements[i][j]==0 and j in good: return False
                        if statements[i][j]==1 and j not in good: return False
            return True
        for i in range(1,1<<n):
            good=set()
            if check(i):
                ans=max(ans,len(good))
        return ans


Comments

Submit
0 Comments
More Questions

230B - T-primes
630A - Again Twenty Five
1234D - Distinct Characters Queries
1183A - Nearest Interesting Number
1009E - Intercity Travelling
1637B - MEX and Array
224A - Parallelepiped
964A - Splits
1615A - Closing The Gap
4C - Registration System
1321A - Contest for Robots
1451A - Subtract or Divide
1B - Spreadsheet
1177A - Digits Sequence (Easy Edition)
1579A - Casimir's String Solitaire
287B - Pipeline
510A - Fox And Snake
1520B - Ordinary Numbers
1624A - Plus One on the Subset
350A - TL
1487A - Arena
1520D - Same Differences
376A - Lever
1305A - Kuroni and the Gifts
1609A - Divide and Multiply
149B - Martian Clock
205A - Little Elephant and Rozdil
1609B - William the Vigilant
978B - File Name
1426B - Symmetric Matrix