虽然标记为简单,代码实现也简单,但是我觉得不能算简单把。
写了好几遍,官方解答是用n每次取减区间长度。我之前的实现是计算累计区间总长度。总是奇怪的问题,个别案例过不了。
官方的题解也有一个有意思的地方,比较的时候如果不把n强制转成long long 解答也是错误的。但是n明明是外部传入的int型数据,不会越界,很费解。
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param n int整型 
     * @return int整型
     */
    int findNthDigit(int n) {
        if(n < 10){
            return n;
        }
        
        // write code here
        int start = 1;
        int bit = 1;
        
        while((long long)n > start * 9 * bit){
            n = n - start * 9 * bit;
            start *= 10;
            ++bit;
        }
        
        string res = to_string((n - 1)/ bit + start); 
        return res[(n - 1) % bit] - '0';
    }
};