码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode: Nth Digit

时间:2016-11-25 09:16:45      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:sequence   log   get   character   exp   tco   long   style   number   

Find the nth digit of the infinite integer sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...

Note:
n is positive and will fit within the range of a 32-bit signed integer (n < 231).

Example 1:

Input:
3

Output:
3
Example 2:

Input:
11

Output:
0

Explanation:
The 11th digit of the sequence 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ... is a 0, which is part of the number 10.

1-9 : count:9 * len:1

10-99: count:90 * len:2

100-999: count:900 * len:3

1000-9999: count: 9000 * len:4

maintain a count, len, start

 1 public class Solution {
 2     public int findNthDigit(int n) {
 3         int start = 1;
 4         int len = 1;
 5         long count = 9;
 6         while (n > len*count) {
 7             n -= len*count;
 8             start *= 10;
 9             len ++;
10             count *= 10;
11         }
12         start += (n-1)/len;
13         char res = Integer.toString(start).charAt((n-1)%len);
14         return Character.getNumericValue(res);
15     }
16 }

 

Leetcode: Nth Digit

标签:sequence   log   get   character   exp   tco   long   style   number   

原文地址:http://www.cnblogs.com/EdwardLiu/p/6100243.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!