亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

微軟算法100題30在從1到n的整數中1出現的次數

2019-11-14 15:16:28
字體:
來源:轉載
供稿:網友

30. 在從1到n的整數中1出現的次數
題目:輸入一個整數n,求從1到n 這n個整數的十進制表示中1出現的次數。
例如輸入12,從1到12這些整數中包含1的數字有1,10,11 和12,1 一共出現了5 次。
分析:這是一道廣為流傳的google 面試題

 

思路:

第一反應是遍歷這N個數,然后對每個正數n不斷用10取余來求各個位上1的次數,同理對每個數求1出現的次數并累加,但這種方法的時間復雜度是o(n),當n值很高時耗時太久

第二個思路是能不能通過數學的方法找到n上所有1的次數 (自己實在是想不出來,先從網上搜了一下,最后發現還是編程之美上講的最清楚,這里我試圖用自己的語言來總結一下)

首先是一個重要的規律:對于特定的數n, 所有從1到n上出現1的次數肯定等于個位上1的次數+十位上1的次數+百位上1的次數+千位上1的次數..... 比如

f(3)=1 只有個位上出現1 

f(13)=個位上出現1的有1 11, 十位上有10 11 12 13  = 2 + 4

f(23)=個位11的數量 11 21, 十位上有10 11 12 13 ...19 = 3 + 10

f(33)=個位1的數量 11 21 31, 十位上有10 11 12 13...19 = 4 + 10

f(93)=個位1的數量 有1 11 ... 91, 十位上有10 11 12 13...19 = 10 + 10

f(203)=個位1的數量 11 21..91,101,111,121..191,201 = 21, 十位 10,11,12..19,110...119=20, 百位100,101,199=100

f(12013)=百位上1的數量 100-199,1100-1199,2100-2199,...9100-9199....11100-11199, 總共12*100=1200  即高位數high*當前位數100

f(12113)=百位上1的數量 同上 高位數12*當前位數100=1200, 再加上12100-12113 = 13+1 即低位數low+1, 總共為high*100+low+1

通過上述的例子,可以發現一個規律,就是對于百位上1出現的次數,其受到三個因素影響:

1. 大于百位的,我們稱之為高位high,  比如對于12013, 其high為12, 其在百位上出現1的次數受到高位high影響: 100-199, 1100-1199....9100-9199,10100-10199,11100-11199, 因為high的影響,為12*100=high*100

2. 對于百位自身cur,如果百位上的數為0,則沒有1,如果等于1,則取決于低位low,比如113, 可以分解為 100-113, 即13+1=low+1. 如果大于1,比如813, 可分解為100-199, 即為100

所以現在需要解決的是然后獲得高位high(12013中的12), 當前位cur(12013中的0), 以及低位low(12013中的13)

回到開頭那個重要的規律,根據這個規律,我們要用一個變量來代表當前的位數,個位為1,十位為10.。依次類推,用fac來表示,fac由1開始,每處理完一位將fac乘以10,代表移到下一位

 

以12013為例,

高位high的計算方法是 12013/1000 = 12013/(百位fac*10) = 12

當前位cur的計算方法是 (12013/100)%10 = (12013/百位fac)%10 = 120%10 = 0

低位low的計算方法是 12013-(12013/100)*100 = 12013-(12013/百位fac)*百位fac = 12013 - 12000 = 13

 

則百位上1的總數有三種可能性:

1. 百位為0時 total = high*fac = 12*100 = 1200

2. 百位為1時 total = high*fac + low + 1 = 12*100 + 13 + 1

3. 百位為其他時 total = high* fac + fac = (high+1)*fac = (12+1)*100 

 

 

用傳統的方法和上述方法分別計算一個較長的數,比如120131111, 結果如下:

TOTAL 1: 124234672
TIME USED: 1372
TOTAL 1: 124234672
TIME USED: 0

 

可見其性能差距之大

通過此題 我徹底找到了取余的感覺。。。。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产日韩欧美在线99| 中文字幕亚洲欧美日韩2019| 亚洲三级黄色在线观看| 在线午夜精品自拍| 欧美精品aaa| 国语自产偷拍精品视频偷| 久久99国产精品自在自在app| 亚洲欧洲日产国产网站| 国产精品成久久久久三级| 日韩经典中文字幕在线观看| 日韩成人av网| 精品久久久久久久久久ntr影视| 国产精品自产拍在线观看| 欧美午夜宅男影院在线观看| 久久中文久久字幕| 色青青草原桃花久久综合| 国产精品久久久久国产a级| 国产日韩欧美日韩大片| 精品久久久久久久久久久久久| 91成人精品网站| 欧美怡红院视频一区二区三区| 狠狠色噜噜狠狠狠狠97| 欧美丰满少妇xxxxx| 日韩av电影在线播放| 国产成人精品久久| 日韩在线中文视频| 另类图片亚洲另类| 日韩美女av在线免费观看| 国产乱人伦真实精品视频| 热久久美女精品天天吊色| 91高清视频免费观看| 精品国产91久久久久久| 欧美人与性动交a欧美精品| 久久久精品国产亚洲| 欧美亚洲另类视频| 欧美国产日韩一区二区| 福利精品视频在线| 国产精品爱啪在线线免费观看| 综合久久五月天| 欧美专区国产专区| 日韩欧美一区二区在线| 亚洲欧美日韩第一区| 欧美多人乱p欧美4p久久| 欧美亚洲成人精品| 日韩av免费看网站| 日韩视频在线免费| 91精品国产高清自在线| 日韩免费在线电影| 久久久www成人免费精品| 91九色单男在线观看| 亚洲国产成人久久综合一区| 日韩va亚洲va欧洲va国产| 成人国产精品久久久| 日韩在线视频一区| www.亚洲人.com| 欧美老女人性生活| 成人av资源在线播放| 91香蕉国产在线观看| 国产成人久久久精品一区| 美女福利视频一区| 亚洲免费成人av电影| 91精品免费久久久久久久久| 国产精品天天狠天天看| 亚洲aⅴ日韩av电影在线观看| 亚洲欧美日本另类| 亚洲一区二区久久久久久| 亚洲精品91美女久久久久久久| 欧美大片在线免费观看| 欧美刺激性大交免费视频| 欧美极度另类性三渗透| 日韩av中文字幕在线播放| 日韩中文字幕久久| 亚洲国产99精品国自产| 一区二区三区视频免费在线观看| 亚洲精品wwww| 国产成人精品免费久久久久| 三级精品视频久久久久| 日韩在线www| 97视频在线看| 97国产精品视频人人做人人爱| 在线精品播放av| 午夜免费日韩视频| 日韩精品高清视频| 色视频www在线播放国产成人| 久久亚洲春色中文字幕| 国产在线视频91| 成人高h视频在线| 亚洲欧美国产另类| 九九九久久国产免费| 2019av中文字幕| 中文综合在线观看| 欧美专区日韩视频| 热99精品只有里视频精品| 欧美成人黑人xx视频免费观看| 国产aaa精品| 精品国产一区二区三区久久狼黑人| 一区二区三区视频观看| 亚洲一区久久久| 亚洲色图av在线| 欧美亚洲免费电影| 亚洲大胆人体av| 国产精品流白浆视频| 中文字幕欧美精品在线| 亚洲国产精品99久久| 欧美视频免费在线| 一本色道久久综合狠狠躁篇的优点| 日本精品视频在线| 亚洲成色777777在线观看影院| 国产精品免费一区二区三区都可以| 91久久夜色精品国产网站| 国产精品视频区1| 亚洲福利视频二区| 久久99青青精品免费观看| 精品视频偷偷看在线观看| 2023亚洲男人天堂| 久久久99免费视频| 久久久黄色av| 亚洲激情在线观看视频免费| 久久99视频免费| 91精品久久久久久久久| 欧美巨乳美女视频| 成人精品视频在线| 日韩亚洲精品视频| 亚洲成人亚洲激情| 国产suv精品一区二区| 国产亚洲人成a一在线v站| 中文字幕日韩高清| 欧美日韩中文字幕在线| 色综合久久精品亚洲国产| 成人福利网站在线观看11| 久久久久久久久亚洲| 国产欧美一区二区三区在线| 国产精品久久二区| yellow中文字幕久久| 久久亚洲精品一区二区| 曰本色欧美视频在线| 精品亚洲男同gayvideo网站| 日韩电影在线观看中文字幕| 亚洲欧洲偷拍精品| 国产精品com| 精品久久久一区二区| 国产一区二区三区久久精品| 日韩精品中文字幕在线| 亚洲色图偷窥自拍| 亚洲天堂精品在线| 色偷偷av一区二区三区| 国产精品国模在线| 国产一区二区动漫| 亚洲一区二区三区香蕉| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产精品第1页| 久久中国妇女中文字幕| 国产亚洲精品综合一区91| 日韩视频免费看| 国产精品成av人在线视午夜片| 日本一区二区在线免费播放| 亚洲无限乱码一二三四麻| 日韩欧美在线观看| 久久综合伊人77777蜜臀| 久久久久久久久综合| 日本一区二区在线播放| 国产精品∨欧美精品v日韩精品| 欧美日韩性生活视频| 亚洲性夜色噜噜噜7777|