Title:Nth Dight 400
Difficulty:Easy
原题leetcode地址: https://leetcode.com/problems/nth-digit/
1. 数学逻辑,找规律
时间复杂度:O(n),一次一层for循环,循环最长为n。
空间复杂度:O(1),没有申请额外空间。
/**
* 数学找规律
* @param n
* @return
*/
public static int findNthDigit(int n) {
if(n <=0) {
return 0;
}
long count = 9;
int start = 1;
int len = 1;
while(n > len*count){
n -= len*count;
len++;
start *= 10;
count *= 10;
}
start += (n-1)/len;
return String.valueOf(start).charAt((n - 1) % len) - '0';
}