1583.统计不开心的朋友
链接:1583.统计不开心的朋友
难度:Medium
标签:数组、模拟
简介:返回 不开心的朋友的数目。
题解 1 - typescript
- 编辑时间:2021-08-14
- 执行用时:140ms
- 内存消耗:55MB
- 编程语言:typescript
- 解法介绍:n2 计算不开心的人进 行累加。
class Person {
map = new Map<number, number>();
constructor(public val: number, link: number[]) {
let c = 0;
for (const p of link) this.map.set(p, cpp);
}
compare(p1: Person, p2: Person): boolean {
return this.map.get(p1.val)! < this.map.get(p2.val)!;
}
}
function unhappyFriends(n: number, preferences: number[][], pairs: number[][]): number {
const map = new Map<number, Person>();
for (let i = 0; i < n; i++) map.set(i, new Person(i, preferences[i]));
const ans = new Array(n).fill(false);
for (let i = 0; i < n / 2; i++) {
const [v1, v2] = pairs[i];
const p1 = map.get(v1)!;
const p2 = map.get(v2)!;
for (let j = 0; j < i; j++) {
const [v3, v4] = pairs[j];
const p3 = map.get(v3)!;
const p4 = map.get(v4)!;
if (p1.compare(p3, p2) && p3.compare(p1, p4)) ans[v1] = ans[v3] = true;
if (p1.compare(p4, p2) && p4.compare(p1, p3)) ans[v1] = ans[v4] = true;
if (p2.compare(p3, p1) && p3.compare(p2, p4)) ans[v2] = ans[v3] = true;
if (p2.compare(p4, p1) && p4.compare(p2, p3)) ans[v2] = ans[v4] = true;
}
}
return ans.filter(Boolean).length;
}