Maximum Good People Based on Statements - Problem
There are two types of persons:
- The good person: The person who always tells the truth.
- The bad person: The person who might tell the truth and might lie.
You are given a 0-indexed 2D integer array statements of size n x n that represents the statements made by n people about each other. More specifically, statements[i][j] could be one of the following:
0which represents a statement made by person i that person j is a bad person.1which represents a statement made by person i that person j is a good person.2represents that no statement is made by person i about person j.
Additionally, no person ever makes a statement about themselves. Formally, we have that statements[i][i] = 2 for all 0 <= i < n.
Return the maximum number of people who can be good based on the statements made by the n people.
Input & Output
Example 1 — Basic Consistency Check
$
Input:
statements = [[2,1,2],[1,2,2],[2,2,2]]
›
Output:
2
💡 Note:
Person 0 says person 1 is good, person 1 says person 0 is good. If both are good, their statements are consistent (good people tell truth). Maximum good people = 2.
Example 2 — Contradictory Statements
$
Input:
statements = [[2,0],[0,2]]
›
Output:
1
💡 Note:
Person 0 says person 1 is bad, person 1 says person 0 is bad. They can't both be good (would contradict each other). Maximum good people = 1.
Example 3 — Single Person
$
Input:
statements = [[2]]
›
Output:
1
💡 Note:
Only one person exists, no statements about others. That person can be good. Maximum good people = 1.
Constraints
- n == statements.length == statements[i].length
- 2 ≤ n ≤ 15
- statements[i][j] is either 0, 1, or 2
- statements[i][i] == 2
Visualization
Tap to expand
Understanding the Visualization
1
Input Matrix
2D array where statements[i][j] represents person i's claim about person j
2
Try Combinations
Test different subsets of people as 'good' (truth-tellers)
3
Validate Consistency
Check if good people's statements match the assumed reality
Key Takeaway
🎯 Key Insight: Good people always tell the truth, so we find the largest group where everyone's statements are consistent with reality
💡
Explanation
AI Ready
💡 Suggestion
Tab
to accept
Esc
to dismiss
// Output will appear here after running code