代码拉取完成,页面将自动刷新
package main
import (
"fmt"
)
// 关键:1.每层的node都要加入res 2.第一层的枝数和比其它层的少1,因为数大于1位时,0不能做首位数 3.分支内当前node以上任意一层出现重复数都要跳过
func countNumbersWithUniqueDigits(n int) (res int) {
nMap := make([]int,10,10)
var depth func(k int)
depth = func(k int) {
if k >= n {
return
}
i := 0
if k == 0 {
i = 1
}
for ; i < 10 ; i++ {
if nMap[i] > 0 {
continue
}
res ++
nMap[i] = 1
depth(k+1)
nMap[i] = 0
}
}
depth(0)
res ++
return
}
func main() {
fmt.Println(countNumbersWithUniqueDigits(4))
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。