400. 第 N 位数字
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                400. 第 N 位数字
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                400. 第 N 位數字
在無限的整數序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, …中找到第 n 位數字。
注意:n 是正數且在 32 位整數范圍內(n < 231)。
示例 1:
輸入:3
 輸出:3
 示例 2:
輸入:11
 輸出:0
 解釋:第 11 位數字在序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, … 里是 0 ,它是 10 的一部分
解題思路
- num記錄當前的數字
 - dig記錄位數,我們的數字是從一位數,二位數…這樣遞增的
 - base代表當前位數擁有多少個數字,比如有9個個位數,90個二位數
 
因此我們只要不斷地遍歷一位數、二位數,找出我們目標位所在在數字為num
 再計算出我們需要的目標位在num中的下標
代碼
class Solution {public int findNthDigit(int n) {long base=9,dig=1;int num=0;while(n>base*dig){n-=base*dig;num+=base;base*=10;dig++;}num+=(n-1)/dig+1;long idx=(n-1)%dig+1;while(dig-->idx)num/=10;return num%10;} }總結
以上是生活随笔為你收集整理的400. 第 N 位数字的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 梦到涨水了是什么意思
 - 下一篇: 梦到男的生孩子什么意思