劍指Offer三十一 整數中1出現的次數

2021-10-23 04:30:57 字數 457 閱讀 2078

求出1-13的整數中1出現的次數,並算出100-1300的整數中1出現的次數?為此他特別數了一下1~13中包含1的數字有1、10、11、12、13因此共出現6次,但是對於後面問題他就沒轍了。acmer希望你們幫幫他,並把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的次數(從1 到 n 中1出現的次數)。

首先我們可以進行進行思考如何將乙個百位的數字進行拆分,無非就是除和模運算。

我們可以只計算大於等於10的數字,這樣會比較好進行終點的分割。

最後計算出來以後加上1時候,就可以表示出所有的1的個數啦。

個人覺得不是很繁瑣,主要就是對進製的轉換有深刻的認知,多加練習,能夠對除運算與模運算結合起來。

public

class

solution

}return temp+1;

}}

劍指offer第三十一題目 整數1出現的個數

題目 解法 第一種 直接從1到n唄,每個數字,我們從個位,十位,到最高位分析,有多少個就加上 然後從1遍歷到n,最後所有的加上,就是總數唄。我們分析一下時間複雜度。每個數字的分析,肯定是lg n 肯定是以10為底,n的對數 從1到n,那麼時間複雜度就是nlogn 我沒寫,參考 第二種,trick 作...

劍指offer 整數中1出現的次數

求出1 13的整數中1出現的次數,並算出100 1300的整數中1出現的次數?為此他特別數了一下1 13中包含1的數字有1 10 11 12 13因此共出現6次,但是對於後面問題他就沒轍了。acmer希望你們幫幫他,並把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的次數。這是劍指offer...

整數中1出現的次數(劍指offer)

求出1 13的整數中1出現的次數,並算出100 1300的整數中1出現的次數?為此他特別數了一下1 13中包含1的數字有1 10 11 12 13因此共出現6次,但是對於後面問題他就沒轍了。acmer希望你們幫幫他,並把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的次數 從1 到 n 中1...