青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

  C++博客 :: 首頁 ::  :: 聯系 ::  :: 管理

Google面試題之補充

Posted on 2006-09-16 15:35 chenger 閱讀(913) 評論(4)  編輯 收藏 引用 所屬分類: Programming Stuff
上次寫了一篇關于google面試題的文章。我給的算法跑得很慢,后面張沈鵬同學用python寫了一個算法,速度很快(再次感覺python的性能不像想象中那么壞,當然和算法有關),看了一下他的代碼,函數count(i)用來計算小于i的1的個數,和我寫的calc_ones算法基本相同,只不過count(i)用了遞歸,看上去更清楚一些。主要的速度差別在little(i)函數上,這個函數避免了很多迭代:

size_t little(size_t i)
{

???
size_t ones = calc_ones(i);
??? if(ones == i)
??????? cout << i <<
"\n";
??? if(i < ones)
??????? if
((ones - i)/9 > 1)
??????????? return
i - (ones - i)/8;
??? if
(i > ones)
??????? return
ones;
??? return
i - 1;
}


這是C++版本。主循環也要略微改變一下:

void
solve()
{

??? size_t
max = 10000000000;
??? for
(size_t i = max;i > 0;i = little(i));
}


可以看到,現在循環從大到小。little函數找到下一個可能滿足題目約束的i。在little函數中,首先計算小于i的1的個數ones,如果ones和i相等,就將i輸出(這就是題目要求干的事)。如果i小于ones,那么就要在小于i的自然數中找下一個可能滿足條件的數。因為搜索的范圍不超過10^10,所以一個數中至多含有9個1,按照這種極端情況,也必須將i減少(ones-i)/8才有可能滿足條件(這里之所以是8,因為同時i也減少了)。如果i大于ones,考慮一個小于i的數i',可以考慮一下calc_ones(i')的取值,極端情況,[i',i)的范圍內的整數沒有一個包含1,也就是說當i減少到i'時1的個數沒有損失,那么calc_ones(i') = calc_ones(i),如果i'>calc_ones(i),則就有i'>calc_ones(i'),直到i'=calc_ones(i),因此下一個需要查看的數就是calc_ones(i)。其實上面這一段討論可以用一個式子來概括:對i'<i,calc_ones(i)-9*(i-i') <= calc_ones(i') <= calc_ones(i)。這樣就能大大提高速度了。

Feedback

# re: Google面試題之補充  回復  更多評論   

2006-09-17 12:57 by 張沈鵬
sorry,我有個筆誤
(count_i-i)/9
=>
(count_i-i)/8
至多含有9個1,count每次最多減9,而i-=1,所以差距至多-8,
這樣會更快一點

# re: Google面試題之補充  回復  更多評論   

2006-09-17 13:19 by 張沈鵬
說實話,第一次我和你說的算法是指的
fastrun()
不過后來你叫我把算法給你看看,我覺得這種奇技淫巧不好意思拿出手
只好想了一個算法
不過,我還是覺得fastrun比run更有價值,我想這也是Google面試的本意吧:)

# re: Google面試題之補充  回復  更多評論   

2006-09-17 13:25 by chenger
后來我也覺得那個不正經。
我認為還是正經解決一下比較好。做到這個份上,也差不多了。

# re: Google面試題之補充  回復  更多評論   

2007-08-16 14:17 by 哈胖頭
Show一下我的程序:

int count_ones(int n)
{
static int pow10[]={1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000};

int ones=0;

for(int m=n, b=0; m; m/=10, b++)
{
int d=m%10;
ones+=d*pow10[b]*b/10;
if(d>1) ones+=pow10[b];
if(d==1) ones+=n%pow10[b];
}

return ones;
}
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久网站热最新地址| 牛夜精品久久久久久久99黑人| 欧美一级淫片播放口| 亚洲视频在线观看免费| 日韩午夜激情电影| 99热免费精品| 亚洲一区亚洲二区| 午夜精品亚洲一区二区三区嫩草| 亚洲一区二区三区成人在线视频精品 | 久久免费精品视频| 久久精品国产2020观看福利| 久久精品麻豆| 欧美电影在线| 国产精品一区二区三区免费观看| 国产日韩欧美高清| 亚洲国产岛国毛片在线| 99在线|亚洲一区二区| 亚洲一区在线看| 久久久久中文| 亚洲伦理在线| 久久大逼视频| 欧美亚洲第一区| 亚洲第一福利视频| 亚洲一区二区高清视频| 美女国产一区| 亚洲图片在区色| 欧美成人精品在线观看| 国产精品区一区| 日韩视频在线观看国产| 欧美在线视频不卡| 91久久综合| 午夜伦欧美伦电影理论片| 牛夜精品久久久久久久99黑人| 国产精品一区久久久久| av成人国产| 欧美大片免费久久精品三p| 一本色道久久综合狠狠躁篇的优点 | 欧美亚洲在线播放| 亚洲欧洲精品一区二区三区 | 欧美福利视频在线观看| 国产欧美日本| 一区二区不卡在线视频 午夜欧美不卡在 | 一区二区免费在线播放| 免费黄网站欧美| 亚洲欧美日韩网| 欧美精品入口| 亚洲人成在线观看| 免费视频最近日韩| 久久精品国产久精国产思思| 国产精品日韩欧美一区二区| 99精品国产高清一区二区| 亚洲性人人天天夜夜摸| 欧美一区二区福利在线| 欧美午夜宅男影院| 中文一区字幕| 日韩视频免费观看| 欧美精品国产一区| 亚洲乱亚洲高清| 亚洲福利视频二区| 欧美成人一品| 亚洲美女毛片| 日韩亚洲不卡在线| 国产精品国产福利国产秒拍| 99riav久久精品riav| 亚洲精品偷拍| 国产精品久久久久av| 亚洲女爱视频在线| 亚洲免费影视| 国户精品久久久久久久久久久不卡 | 亚洲国产婷婷香蕉久久久久久| 久久久www成人免费无遮挡大片| 国产一区91| 久久综合伊人77777麻豆| 久久精品欧美日韩| 在线欧美视频| 亚洲欧洲在线看| 国产精品videosex极品| 性欧美video另类hd性玩具| 亚洲欧美视频在线观看视频| 国产在线成人| 欧美激情亚洲一区| 欧美视频一区二区三区在线观看| 亚洲欧美日韩高清| 久久精品首页| 一本色道久久综合亚洲精品高清| 中日韩美女免费视频网址在线观看 | 亚洲天堂免费在线观看视频| 欧美一区二区高清| 亚洲高清一区二| 欧美日韩国产丝袜另类| 欧美亚洲免费高清在线观看| 久久精品国产欧美亚洲人人爽| 亚洲国产国产亚洲一二三| 亚洲美女91| 一区二区三区在线视频观看| 亚洲片国产一区一级在线观看| 国产精品久久久久久妇女6080| 久久久久久久久一区二区| 欧美xx69| 久久久精品久久久久| 欧美精品二区三区四区免费看视频| 亚洲免费在线观看视频| 久久综合色播五月| 欧美一级在线播放| 欧美日韩999| 久久国产成人| 精品动漫3d一区二区三区免费| 亚洲国产精品尤物yw在线观看| 国产精品久久亚洲7777| 欧美黄色日本| 国产夜色精品一区二区av| 一区二区日韩免费看| 在线观看国产成人av片| 亚洲午夜精品国产| 亚洲精品日本| 久久久亚洲成人| 欧美亚洲在线播放| 欧美体内谢she精2性欧美| 亚洲第一色中文字幕| 国产一区二区精品久久91| aa级大片欧美| 亚洲精品乱码| 男同欧美伦乱| 欧美大片免费| 亚洲激情国产| 另类图片综合电影| 久久蜜桃香蕉精品一区二区三区| 国产精品va在线播放| 日韩视频免费观看| 中文av一区特黄| 欧美日韩成人在线视频| 亚洲国产高清aⅴ视频| 激情久久久久| 久久午夜电影网| 欧美成人精品激情在线观看| 国产综合视频在线观看| 久久精品国产2020观看福利| 久久久精品一区| 狠狠色丁香久久综合频道| 欧美一区影院| 久久先锋资源| 亚洲国产精品视频一区| 久久免费视频在线观看| 美日韩在线观看| 伊人成人开心激情综合网| 久久久久久91香蕉国产| 欧美大成色www永久网站婷| 亚洲日本无吗高清不卡| 欧美片在线播放| 在线视频你懂得一区| 欧美一区二区三区成人| 国产亚洲欧美aaaa| 久久一二三国产| 亚洲精品美女在线观看| 亚洲欧美在线网| 国产日韩欧美中文| 鲁大师影院一区二区三区| 亚洲精品国产视频| 亚洲欧美国产日韩中文字幕| 国产精品一区久久| 久久女同精品一区二区| 亚洲精品永久免费精品| 午夜精品久久久久久久男人的天堂| 国产精品人成在线观看免费| 久久久久久夜| 亚洲精品美女久久7777777| 欧美一级黄色录像| 亚洲日本久久| 国产欧美va欧美不卡在线| 久久一区二区视频| 99国产精品99久久久久久粉嫩| 久久成人18免费网站| 亚洲欧洲日韩女同| 国产精品自拍网站| 欧美韩日一区二区| 亚洲国产日韩欧美在线99 | 日韩午夜三级在线| 国产精品日韩专区| 噜噜噜在线观看免费视频日韩| 日韩午夜激情av| 美女福利精品视频| 亚洲欧美日韩国产成人| 91久久国产综合久久蜜月精品 | 欧美午夜精品久久久久久孕妇| 午夜一级久久| 日韩视频在线一区二区三区| 久久综合久久88| 亚洲欧美高清| 一本色道久久综合亚洲精品按摩 | 久久久噜噜噜久久中文字免| 亚洲精品欧美激情| 国内精品免费在线观看| 欧美午夜精品一区| 欧美精品亚洲二区| 久久婷婷激情| 久久久久国产精品麻豆ai换脸| 亚洲视频福利| 99精品福利视频| 亚洲精品乱码| 91久久在线|