leetCode演算法題 3 統計數字詳細思路

2021-09-22 02:39:15 字數 898 閱讀 1293

描述

中文english

計算數字 k 在 0 到 n 中的出現的次數,k 可能是 0~9 的乙個值。

您在真實的面試中是否遇到過這個題?

樣例樣例 1:

輸入:k = 1, n = 1

輸出:1

解釋:在 [0, 1] 中,我們發現 1 出現了 1 次 (1)。

樣例 2:

輸入:k = 1, n = 12

輸出:5

解釋:在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 中,我們發現 1 出現了 5 次 (1, 10, 11, 12)(注意11中有兩個1)。

解答思路:

思考每個位數上該k值會出現多少次

比如乙個1231的n值 k為1

個位數只可能是0-9的陣列,1230說明我由123個10外加乙個個位數上的組成了這個值,這說明我在從0到1230期間,個位數遇到了123個k值外加個位數遇到了乙個1,此時個位數的k計算完畢

十位數只可能是0-9,1230說明我由12個100外加乙個30的組成了這個值,這說明我在從0到1230期間,十位數遇到了12個k值,外加乙個30遇到的k數值,30的3>k,說明還遇到了10個k值(10~~19)

而如果n為1211 k為1, 十位數遇到了12個k值外加乙個11遇到的k值,11的1=k,說明還遇到了10位數的餘數(個位數上的數值)+1個k(10、11)

由此可得:

public class solution 

while(wei<=n) else if(left/wei > k&&k!=0) else if(k!=0)

}wei=wei*10;

}return sums;

}}

演算法實現題 統計數字

一本書的頁碼從自然數 1 開始順序編碼直到自然數 n。書的頁碼按照通常的習慣編排,每個頁碼都不含多餘的前導數字 0。例如,第 6 頁用數字 6 表示,而不是 06 或 006 等。數字計數問題要求對給定書的總頁碼 n,計算出書的全部頁碼中分別用到多少次數字 0,1,2,9。給定表示書的總頁碼的 10...

3 統計數字

題目 計算數字k在0到n中的出現的次數,k可能是0 9的乙個值 例如n 12,k 1,在 0,1,2,3,4,5,6,7,8,9,10,11,12 我們發現1出現了5次 1,10,11,12 分析 對每個數字number進行遍歷,從個位開始,逐一判斷是否等於我們要找的數字k,若個位數字等於k,計數加...

演算法實現題 1 1 統計數字問題

問題描述 一本書的頁碼從自然數 1 開始順序編碼直到自然數 n。書的頁碼按照通常的習慣編排,每個頁碼都不含多餘的前導數字 0。例如,第 6 頁用數字 6 表示,而不是 06 或 006 等。數 字計數問題要求對給定書的總頁碼 n,計算出書的全部頁碼中分別用到多少次數字 0,1,2,9。程式設計任務 ...