Skip to content

Commit 050684c

Browse files
authored
Create 1733-minimum-number-of-people-to-teach.js
1 parent 9b0df17 commit 050684c

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/**
2+
* @param {number} n
3+
* @param {number[][]} languages
4+
* @param {number[][]} friendships
5+
* @return {number}
6+
*/
7+
var minimumTeachings = function(n, languages, friendships) {
8+
let cnt_people = languages.length;
9+
10+
const knows = Array.from({length: cnt_people}, () => Array(n).fill(0))
11+
for(let who = 0; who < cnt_people; ++who) {
12+
for(let x of languages[who]) {
13+
knows[who][x-1] = true;
14+
}
15+
}
16+
let req = Array(n).fill(0);
17+
let s = new Set();
18+
for(let edge of friendships) {
19+
let a = edge[0] - 1;
20+
let b = edge[1] - 1;
21+
let yes = false;
22+
for(let x of languages[a]) {
23+
if(knows[b][x-1]) {
24+
yes = true;
25+
}
26+
}
27+
if(yes) {
28+
continue;
29+
}
30+
s.add(a);
31+
s.add(b);
32+
}
33+
let best = Infinity;
34+
for(let i = 0; i < n; ++i) {
35+
let needed = 0;
36+
for(let person of s) {
37+
if(!knows[person][i]) {
38+
needed++;
39+
}
40+
}
41+
best = Math.min(best, needed);
42+
}
43+
return best;
44+
};
45+

0 commit comments

Comments
 (0)