Nth Digit LeetCode solution in Java
1class Solution {2public int findNthDigit(int n) {34if (n < 10) return n;56long currDigitIndex = 10;7int tillNextIncrease = 90;8int currNumberSize = 2;9int currNumber = 10;10int next = tillNextIncrease;1112while (currDigitIndex < n) {1314currNumber++;15currDigitIndex += currNumberSize;16next--;1718if (next == 0) {19currNumberSize++;20tillNextIncrease *= 10;21next = tillNextIncrease;22}23}2425int nthDigit = currNumber % 10;26if (currDigitIndex == n) {27while (currNumber != 0) {28nthDigit = currNumber % 10;29currNumber /= 10;30}31} else if (currDigitIndex > n) {3233currNumber--;3435while (currDigitIndex > n) {36currDigitIndex--;37nthDigit = currNumber % 10;38currNumber /= 10;39}40}4142return nthDigit;43}44}