求出1~13的整數中1出現的次數,並算出100~1300的整數中1出現的次數?為此他特別數了一下1~13中包含1的數字有1、10、11、12、13因此共出現6次,但是對於後面問題他就沒轍了。acmer希望你們幫幫他,並把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的次數。
這題說實話挺難的,暴力解法比較簡單,主要是想到時間複雜度更好的解法很難。
第一種暴力解法,也就是逐個判斷。
第二種運用了根據位數來做,逐位求解,並且對於特殊情況做下判斷。
主要注意下每位0,1,>2三種情況。並且通過+8處理可以很好地把》2情況歸在一起。
具體可以檢視leetcode上的number of digit one的解答。
第一種:
functionnumberof1between1andn_solution(n)
num=~~(num/10);
} }
return
ones;
}
第二種:
functionnumberof1between1andn_solution(n)
return
count;
}
劍指offer(31)1到n中n出現的次數
題目描述 求出1 13的整數中1出現的次數,並算出100 1300的整數中1出現的次數?為此他特別數了一下1 13中包含1的數字有1 10 11 12 13因此共出現6次,但是對於後面問題他就沒轍了。acmer希望你們幫幫他,並把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的次數 從1 到...
劍指 Offer1 n 整數中 1 出現的次數
輸入乙個整數 n 求1 n這n個整數的十進位制表示中1出現的次數。例如,輸入12,1 12這些整數中包含1 的數字有1 10 11和12,1一共出現了5次。示例 1 輸入 n 12 輸出 5 示例 2 輸入 n 13 輸出 6 限制 1 n 2 31 我們考慮計算每一位的1的個數。即計算個十百千位。...
劍指offer 43 1 n整數中 1出現的次數
求出1 13的整數中1出現的次數,並算出100 1300的整數中1出現的次數?為此他特別數了一下1 13中包含1的數字有1 10 11 12 13因此共出現6次,但是對於後面問題他就沒轍了。acmer希望你們幫幫他,並把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的次數。思路1 算出數字n...