Re: [閒聊] 每日leetcode

看板Marginalman作者 (神楽めあ的錢包)時間2月前 (2025/09/10 21:53), 編輯推噓0(001)
留言1則, 1人參與, 2月前最新討論串1517/1548 (看更多)
1733. Minimum Number of People to Teach 思路 : 先把friendship裡面可以溝通的組合刪掉 算出剩下的人幾個假設有m個 並統計剩下來的每個人會講的語言 找出最多人會講的語言 : L 假設剩下來的人中有x個人會講L語言 那答案就是L-x golang code : func minimumTeachings(n int, languages [][]int, friendships [][]int) int { m := len(languages) know := make([]map[int]bool, m+1) for i, val := range languages { people := i + 1 know[people] = make(map[int]bool) for _, language := range val { know[people][language] = true } } needTeach := make(map[int]bool) for _, f := range friendships { u, v := f[0], f[1] teach := true for language := range know[u] { if know[v][language] { teach = false break } } if teach { needTeach[u] = true needTeach[v] = true } } NumNeedTeach := len(needTeach) if NumNeedTeach == 0 { return 0 } arr := make(map[int]int) for i, val := range languages { people := i + 1 if needTeach[people] { for _, language := range val { arr[language]++ } } } L := 0 for _, val := range arr { L = max(val,L) } return NumNeedTeach-L } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.121.235.241 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1757512437.A.DD1.html

09/10 21:54, 2月前 , 1F
大師
09/10 21:54, 1F
文章代碼(AID): #1emOBrtH (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1emOBrtH (Marginalman)