Re: [閒聊] 每日leetcode

作者: JIWP (JIWP)   2025-04-12 19:38:46
3272. Find the Count of Good Integers
滿無聊的問題
寫起來很浪費時間
思路:
把所有n位數且是回文並可以被k整除的數字記錄下來
並且記錄該數字中0~9出現過的次數
接著就開始排列
最後回傳答案就好
golang code :
func countGoodIntegers(n int, k int) int64 {
if n == 1 {
return int64(9 / k)
}
rec := make(map[[10]int]bool)
if n&1 == 0 {
rec = chkEvenLen(n, k)
} else {
rec = chkOddLen(n, k)
}
ans := 0
for key := range rec {
tmp := 1
nTmp := n
tmp *= (cnk(nTmp, key[0]) - cnk(nTmp-1, key[0]-1))
nTmp -= key[0]
for i := 1; i < 10; i++ {
tmp *= cnk(nTmp, key[i])
nTmp -= key[i]
}
ans += tmp
}
return int64(ans)
}
func cnk(n, k int) int {
if k < 0 {
return 0
}
if k == n || k == 0 {
return 1
}
if k == 1 {
return n
}
if k > n/2 {
k = n - k
}
dp := make([]int, k+1)
dp[0] = 1
for i := 1; i <= n; i++ {
for j := min(i, k); j > 0; j
作者: sustainer123 (caster)   2025-04-12 19:43:00
就暴力解喔 真假我直覺上有想到 但感覺hard又沒那麼白痴
作者: scmono (摸諾)   2025-04-12 19:46:00
大師 我連題目讀懂都想好久==
作者: Furina (芙寧娜)   2025-04-12 20:00:00
大師

Links booklink

Contact Us: admin [ a t ] ucptt.com