Leetcode400. 第N位数字
1. 问题描述

2. 思路
- 找到第n位数字属于的整数num
- 找到第n位数字在num中的索引index
- 解析出num中的第index个数
3. 代码
func findNthDigit(n int) int {
d := 1
for count := 9; n > d * count; {
n = n - count * d
d++
count = count * 10
}
// 结果为第n + 1个d位数
num := int(math.Pow(10, float64(d-1))) - 1 + n / d
index := n % d
if index == 0 {
return num % 10
} else {
return getNum(num + 1, index, d)
}
}
func getNum(num int, index int, d int) int {
num = num / int(math.Pow(10, float64(d - index)))
return num % 10
}
LeetCode解题:寻找第N位数字的算法解析
本文介绍了LeetCode第400题的解决方案,通过数学和编程技巧找到第n位数字。首先确定数字所在的整数范围,然后定位到该数字在整数内的索引,最后解析出具体数值。提供的Go代码实现了这一过程。
1040

被折叠的 条评论
为什么被折叠?



