237просмотров
6.3%от подписчиков
24 марта 2026 г.
statsScore: 261
Задача: 400. Nth Digit
Сложность: medium Дано целое число n, вернуть n-ю цифру бесконечной последовательности чисел [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...]. Пример:
Input: n = 3
Output: 3 👨💻 Алгоритм: 1⃣Определение диапазона:
Начните с определения количества цифр в числах текущего диапазона (1-9, 10-99, 100-999 и т.д.).
Уменьшайте значение n, вычитая количество цифр в текущем диапазоне, пока не найдете диапазон, в который попадает n-я цифра. 2⃣Нахождение конкретного числа:
Когда определите диапазон, найдите точное число, содержащее n-ю цифру.
Определите индекс цифры в этом числе. 3⃣Возвращение n-й цифры:
Извлеките и верните n-ю цифру из найденного числа. 😎 Решение:
func findNthDigit(n int) int { length, count, start := 1, 9, 1 for n > length count { n -= length count length++ count = 10 start = 10 } start += (n - 1) / length s := strconv.Itoa(start) return int(s[(n - 1) % length] - '0')
} Ставь 👍 и забирай 📚 Базу знаний