leetcode (Nth Digit)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hsx1612727380/article/details/85346077

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';

    }

猜你喜欢

转载自blog.csdn.net/hsx1612727380/article/details/85346077