Re: [閒聊] 每日leetcode

作者: JIWP (JIWP)   2024-10-06 10:11:43
2491. Divide Players Into Teams of Equal Skill
給一個正整數矩陣SKILL,長度為偶數
將skill分成兩兩一組,每一組的總和相等
將每一組的兩個數字相乘
並把每組的結果相加
再回傳
如果沒辦法達成上述條件
請回傳-1
思路:
首先將skill所有元素相加得到sum
skill的長度為n
把sum/(n/2)
如果餘數非零則回傳-1
接著用hash map紀錄每個數字出現的次數
目標是兩個數字相加=sum/(n/2)
看是不是所有數字都可以配對到
可以的話就照題目得到答案
不行就回傳-1
golang code:
func dividePlayers(skill []int) int64 {
sum, n, cnt := 0, len(skill), 0
for _, val := range skill {
sum += val
}
if sum%(n/2) != 0 {
return -1
}
target := sum *2 /n
sum = 0
rec := make(map[int]int)
for _, val := range skill {
idx := target - val
if rec[idx] > 0 {
cnt+=2
rec[idx]
作者: DJYOSHITAKA (Evans)   2024-10-06 10:23:00
別捲了

Links booklink

Contact Us: admin [ a t ] ucptt.com