Skip to content

Commit 621ac9f

Browse files
authored
Update 1125-smallest-sufficient-team.js
1 parent b875116 commit 621ac9f

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

1125-smallest-sufficient-team.js

+42
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,45 @@
1+
/**
2+
* @param {string[]} req_skills
3+
* @param {string[][]} people
4+
* @return {number[]}
5+
*/
6+
const smallestSufficientTeam = function (req_skills, people) {
7+
const m = req_skills.length,
8+
n = people.length,
9+
limit = 1 << m
10+
const skillIdxMap = {}
11+
for(let i = 0; i < m; i++) {
12+
skillIdxMap[req_skills[i]] = i
13+
}
14+
const dp = Array(limit)
15+
16+
dp[0] = []
17+
18+
for(let i = 0; i < n; i++) {
19+
let skillMask = 0
20+
for(let j = 0; j < people[i].length; j++) {
21+
skillMask |= (1 << skillIdxMap[people[i][j]])
22+
}
23+
24+
for(let j = 0; j < dp.length; j++) {
25+
if(dp[j] == null) continue
26+
const prev = j
27+
const comb = prev | skillMask
28+
29+
if(dp[comb] == null || dp[comb].length > dp[prev].length + 1) {
30+
31+
dp[comb] = dp[prev].slice()
32+
dp[comb].push(i)
33+
}
34+
}
35+
}
36+
37+
return dp[limit - 1]
38+
}
39+
40+
// another
41+
42+
143
/**
244
* @param {string[]} req_skills
345
* @param {string[][]} people

0 commit comments

Comments
 (0)