首页 > 代码库 > Leetcode: Nth Digit
Leetcode: Nth Digit
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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。