找出第 n 位数字 - 解题思路与实现
题目描述
给定一个整数 n
,要求在一个无限的整数序列中找出并返回第 n
位上的数字。这个序列从 1 开始,依次为:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, ...,我们需要找到第 n
位数字是什么。
示例
示例 1:
输入:n = 3
输出:3
示例 2:
输入:n = 11
输出:0
解释:第 11 位数字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... 里是 0
,它是数字 10 的一部分。
提示
- 1 ≤ n ≤ 2^31 - 1
解题分析
这道题的关键在于如何高效地找到第 n
位数字,而不需要实际构造出整个序列。考虑到 n
可能会非常大,直接构造数字序列不仅耗时,而且空间复杂度也会非常高。因此