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