Python DP
\nclass Solution:\n    def smallestSufficientTeam(self, req_skills: List[str], people: List[List[str]]) -> List[int]:\n        proj = {req_skills[i]:i for i in 
```\nclass Solution:\n    def smallestSufficientTeam(self, req_skills: List[str], people: List[List[str]]) -> List[int]:\n        proj = {req_skills[i]:i for i in range(len(req_skills))}\n        dp = {\'0\'*len(req_skills):[]}\n        for i,skills in enumerate(people):\n            for skill_set in list(dp.keys()):\n                new_set = str(skill_set)\n                for skill in skills:\n                    if skill in proj:\n                        new_set = new_set[:proj[skill]] + \'1\' +new_set[proj[skill]+1:]\n                if new_set not in dp or len(dp[new_set]) > len(dp[skill_set]) + 1:\n                    dp[new_set] = [val for val in dp[skill_set]] + [i]\n        return dp[\'1\'*len(req_skills)]\n```
[]