package leetcode
func UnhappyFriends(n int, preferences [][]int, pairs [][]int) int {
m := make(map[int]int, n)
for _, pair := range pairs {
m[pair[0]] = pair[1]
m[pair[1]] = pair[0]
}
var judge func(x, y int) bool //判断是否不开心
judge = func(x, y int) bool {
//遍历x的朋友列表,依次当作u
for _, p1 := range preferences[x] {
u := p1
if u == y {
return false
}
//x 与 u 的亲近程度胜过 x 与 y
v := m[u]
//判断u 与 x 的亲近程度是否胜过 u 与 v
for _, p := range preferences[u] {
if p == x {
return true //u 与 x 的亲近程度胜过 u 与 v
} else if p == v {
break
} else {
continue
}
}
}
return false
}
var count int
for _, pair := range pairs {
if judge(pair[0], pair[1]) {
count++
}
if judge(pair[1], pair[0]) {
count++
}
}
return count
}
leetcode 第1583题-统计不开心的朋友
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 成长记录-连载(三十六) ——我的第一篇五千字长文,说了什么,你一定想不到 并不是不想每天写公众号,而是之前思考怎...
- 给你一份 n 位朋友的亲近程度列表,其中 n 总是 偶数 。 对每位朋友 i,preferences[i] 包含一...