Leetcode 400 第N位数字
题目
给你一个整数 n ,请你在无限的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...] 中找出并返回第 n 位数字。
解题思路
[1, 9] 的数字位数都是1,[10, 99] 的数字位数都是2…以此类推,可以先确定数字的位数。减去前面所有的位数和,再根据余值计算具体的数,然后在数上取答案。变量名用的比较乱,具体看代码注释吧。
代码
class Solution {
public int findNthDigit(int n) {
long tmp = 9;
int nowNumber = 0, cnt = 1; //nowNumber表示第N位所在的数
while (n - cnt * tmp > 0) {
n -= cnt * tmp;
nowNum
共有 0 条评论