Re: [閒聊] 每日leetcode

作者: JIWP (JIWP)   2024-06-22 17:33:44
3185. Count Pairs That Form a Complete Day II
給一個array hours
任選hours裡的兩個元素相加,hours[i]+hours[j]
請問可以找到幾個組合可以得到complete day?
complete就是hours[i]+hours[j]是24的倍數
思路:
將hours裡的每個數除以24
並去記錄每個餘數出現的次數
(0,0)、(1,23)、(2,22)...(12,12)可以組成complete day
將這些組合出現的次數相加
就可以得到答案了
golang code :
func countCompleteDayPairs(hours []int) int64 {
rec, ans := [24]int{}, 0
for _, val := range hours {
tmp := val % 24
rec[tmp]++
}
ans += rec[0] * (rec[0] - 1) / 2
ans += rec[12] * (rec[12] - 1) / 2
for i := 1; i < 12; i++ {
ans += rec[i] * rec[24-i]
}
return int64(ans)
}
作者: SydLrio (狂嵐嘴砲)   2024-06-22 18:04:00
大師

Links booklink

Contact Us: admin [ a t ] ucptt.com