java.lang.Object
g1101_1200.s1125_smallest_sufficient_team.Solution

public class Solution extends Object
1125 - Smallest Sufficient Team.<p>Hard</p> <p>In a project, you have a list of required skills <code>req_skills</code>, and a list of people. The <code>i<sup>th</sup></code> person <code>people[i]</code> contains a list of skills that the person has.</p> <p>Consider a sufficient team: a set of people such that for every required skill in <code>req_skills</code>, there is at least one person in the team who has that skill. We can represent these teams by the index of each person.</p> <ul> <li>For example, <code>team = [0, 1, 3]</code> represents the people with skills <code>people[0]</code>, <code>people[1]</code>, and <code>people[3]</code>.</li> </ul> <p>Return <em>any sufficient team of the smallest possible size, represented by the index of each person</em>. You may return the answer in <strong>any order</strong>.</p> <p>It is <strong>guaranteed</strong> an answer exists.</p> <p><strong>Example 1:</strong></p> <p><strong>Input:</strong> req_skills = [&ldquo;java&rdquo;,&ldquo;nodejs&rdquo;,&ldquo;reactjs&rdquo;], people = [[&ldquo;java&rdquo;],[&ldquo;nodejs&rdquo;],[&ldquo;nodejs&rdquo;,&ldquo;reactjs&rdquo;]]</p> <p><strong>Output:</strong> [0,2]</p> <p><strong>Example 2:</strong></p> <p><strong>Input:</strong> req_skills = [&ldquo;algorithms&rdquo;,&ldquo;math&rdquo;,&ldquo;java&rdquo;,&ldquo;reactjs&rdquo;,&ldquo;csharp&rdquo;,&ldquo;aws&rdquo;], people = [[&ldquo;algorithms&rdquo;,&ldquo;math&rdquo;,&ldquo;java&rdquo;],[&ldquo;algorithms&rdquo;,&ldquo;math&rdquo;,&ldquo;reactjs&rdquo;],[&ldquo;java&rdquo;,&ldquo;csharp&rdquo;,&ldquo;aws&rdquo;],[&ldquo;reactjs&rdquo;,&ldquo;csharp&rdquo;],[&ldquo;csharp&rdquo;,&ldquo;math&rdquo;],[&ldquo;aws&rdquo;,&ldquo;java&rdquo;]]</p> <p><strong>Output:</strong> [1,2]</p> <p><strong>Constraints:</strong></p> <ul> <li><code>1 <= req_skills.length <= 16</code></li> <li><code>1 <= req_skills[i].length <= 16</code></li> <li><code>req_skills[i]</code> consists of lowercase English letters.</li> <li>All the strings of <code>req_skills</code> are <strong>unique</strong>.</li> <li><code>1 <= people.length <= 60</code></li> <li><code>0 <= people[i].length <= 16</code></li> <li><code>1 <= people[i][j].length <= 16</code></li> <li><code>people[i][j]</code> consists of lowercase English letters.</li> <li>All the strings of <code>people[i]</code> are <strong>unique</strong>.</li> <li>Every skill in <code>people[i]</code> is a skill in <code>req_skills</code>.</li> <li>It is guaranteed a sufficient team exists.</li> </ul>
  • Constructor Details

    • Solution

      public Solution()
  • Method Details

    • smallestSufficientTeam

      public int[] smallestSufficientTeam(String[] skills, List<List<String>> people)