日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

九月腾讯,创新工场,淘宝等公司最新面试三十题(更新至10.04)

發(fā)布時間:2023/12/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 九月腾讯,创新工场,淘宝等公司最新面试三十题(更新至10.04) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

????????九月騰訊,創(chuàng)新工場,淘寶等公司最新面試三十題

引言???

??? 曾記否,去年的10月份也同此刻一樣,是找工作的高峰期,本博客便是最初由整理微軟等公司面試題而發(fā)展而來的。如今,又即將邁入求職高峰期--10月份,而本人也正在找下一份工作中,所以,也不免關(guān)注了網(wǎng)上和我個人建的算法群Algorithms1-12群內(nèi)朋友發(fā)布和討論的最新面試題。特此整理,以饗諸位。至于答案,望諸位共同討論與思考。

最新面試十三題

??? 好久沒有好好享受思考了。ok,任何人有任何意見或問題,歡迎不吝指導(dǎo):

  • 五只猴子分桃。半夜,第一只猴子先起來,它把桃分成了相等的五堆,多出一只。于是,它吃掉了一個,拿走了一堆; 第二只猴子起來一看,只有四堆桃。于是把四堆合在一起,分成相等的五堆,又多出一個。于是,它也吃掉了一個,拿走了一堆;.....其他幾只猴子也都是 這樣分的。問:這堆桃至少有多少個?(朋友說,這是小學(xué)奧數(shù)題)。
    ? 參考答案:先給這堆桃子加上4個,設(shè)此時共有X個桃子,最后剩下a個桃子.這樣:?
    ? 第一只猴子分完后還剩:(1-1/5)X=(4/5)X;?
    ? 第二只猴子分完后還剩:(1-1/5)2X;
    ? 第三只猴子分完后還剩:(1-1/5)3X;
    ? 第四只猴子分完后還剩:(1-1/5)4X;
    ? 第五只猴子分完后還剩:(1-1/5)5X=(1024/3125)X;
    ? 得:a=(1024/3125)X;
    ? 要使a為整數(shù),X最小取3125.
    ? 減去加上的4個,所以,這堆桃子最少有3121個。
  • 已知有個rand7()的函數(shù),返回1到7隨機(jī)自然數(shù),讓利用這個rand7()構(gòu)造rand10() 隨機(jī)1~10
    (參考答案:這題主要考的是對概率的理解。程序關(guān)鍵是要算出rand10,1到10,十個數(shù)字出現(xiàn)的考慮都為10%.根據(jù)排列組合,連續(xù)算兩次rand7出現(xiàn)的組合數(shù)是7*7=49,這49種組合每一種出現(xiàn)考慮是相同的。怎么從49平均概率的轉(zhuǎn)換為1到10呢?方法是:
    1.rand7執(zhí)行兩次,出來的數(shù)為a1.a2.
    2.如果a1*7+a2<40,b=(a1*7+a2)/10+1,如果a1*7*a2>=40,重復(fù)第一步)。參考代碼如下所示:
  • int?rand7()??
  • {??
  • ??return?rand()%7+1;??
  • }??
  • ??
  • int?rand10()??
  • {??
  • ??int?a71,a72,a10;??
  • ??do???
  • ??{??
  • ????a71=?rand7()-1;??
  • ????a72?=?rand7()-1;??
  • ????a10?=?a71?*7?+?a72;??
  • ??}?while?(a10>=?40);??
  • ??return?(a71*7+a72)/4+1;??
  • }??
  • 如果兩個字符串的字符一樣,但是順序不一樣,被認(rèn)為是兄弟字符串,問如何在迅速匹配兄弟字符串(如,bad和adb就是兄弟字符串)。
  • 要求設(shè)計一個DNS的Cache結(jié)構(gòu),要求能夠滿足每秒5000以上的查詢,滿足IP數(shù)據(jù)的快速插入,查詢的速度要快。
  • 一個未排序整數(shù)數(shù)組,有正負(fù)數(shù),重新排列使負(fù)數(shù)排在正數(shù)前面,并且要求不改變原來的正負(fù)數(shù)之間相對順序 比如: input: 1,7,-5,9,-12,15 ans: -5,-12,1,7,9,15 要求時間復(fù)雜度O(N),空間O(1) 。此題一直沒看到令我滿意的答案,一般達(dá)不到題目所要求的:時間復(fù)雜度O(N),空間O(1),且保證原來正負(fù)數(shù)之間的相對位置不變)。
  • 淘寶面試題:有一個一億節(jié)點的樹,現(xiàn)在已知兩個點,找這兩個點的共同的祖先。
  • 海量數(shù)據(jù)分布在100臺電腦中,想個辦法高效統(tǒng)計出這批數(shù)據(jù)的TOP10。(此題請參考本博客內(nèi)其它文章)。
  • 某服務(wù)器流量統(tǒng)計器,每天有1000億的訪問記錄數(shù)據(jù),包括時間、url、ip。設(shè)計系統(tǒng)實現(xiàn)記錄數(shù)據(jù)的

    保存、管理、查詢。要求能實現(xiàn)一下功能:
    (1)計算在某一時間段(精確到分)時間內(nèi)的,某url的所有訪問量。
    (2)計算在某一時間段(精確到分)時間內(nèi)的,某ip的所有訪問量。

  • ?

    假設(shè)某個網(wǎng)站每天有超過10億次的頁面訪問量,出于安全考慮,網(wǎng)站會記錄訪問客戶端訪問的ip地址和對應(yīng)的時間,如果現(xiàn)在已經(jīng)記錄了1000億條數(shù)據(jù),想統(tǒng)計一個指定時間段內(nèi)的區(qū)域ip地址訪問量,那么這些數(shù)據(jù)應(yīng)該按照何種方式來組織,才能盡快滿足上面的統(tǒng)計需求呢,
    設(shè)計完方案后,并指出該方案的優(yōu)缺點,比如在什么情況下,可能會非常慢?(
    參考答案:用B+樹來組織,非葉子節(jié)點存儲(某個時間點,頁面訪問量),葉子節(jié)點是訪問的IP地址。這個方案的優(yōu)點是查詢某個時間段內(nèi)的IP訪問量很快,但是要統(tǒng)計某個IP的訪問次數(shù)或是上次訪問時間就不得不遍歷整個樹的葉子節(jié)點。或者可以建立二級索引,分別是時間和地點來建立索引。)

  • ?

    騰訊1.服務(wù)器內(nèi)存1G,有一個2G的文件,里面每行存著一個QQ號(5-10位數(shù)),怎么最快找出出現(xiàn)過最多次的QQ號。(此題與稍后下文的第14題重復(fù),思路參考請見下文第14題)。
    騰訊2.如何求根號2的值,并且按照我的需要列出指定小數(shù)位,比如根號2是1.141 我要列出1位小數(shù)就是1.1 2位就是1.14, 1000位就是1.141...... 等。。

  • ?

    給定一個字符串的集合,格式如:{aaa bbb ccc}, {bbb ddd},{eee fff},{ggg},{ddd hhh}要求將其中交集不為空的集合合并,要求合并完成后的集合之間無交集,例如上例應(yīng)輸出{aaa bbb ccc ddd hhh},{eee fff}, {ggg}。
  • ?

    創(chuàng)新工場面試題:abcde五人打漁,打完睡覺,a先醒來,扔掉1條魚,把剩下的分成5分,拿一份走了;b再醒來,也扔掉1條,把剩下的分成5份,拿一份走了;然后cde都按上面的方法取魚。問他們一共打了多少條魚,寫程序和算法實現(xiàn)。提示:共打了多少條魚的結(jié)果有很多。但求最少打的魚的結(jié)果是3121條魚(應(yīng)該找這5個人問問,用什么工具打了這么多條魚)。(http://blog.csdn.net/nokiaguy/article/details/6800209)。
  • 我們有很多瓶無色的液體,其中有一瓶是毒藥,其它都是蒸餾水,實驗的小白鼠喝了以后會在5分鐘后死亡,而喝到蒸餾水的小白鼠則一切正常。現(xiàn)在有5只小白鼠,請問一下,我們用這五只小白鼠,5分鐘的時間,能夠檢測多少瓶液體的成分?
    淘寶2012筆試(研發(fā)類):http://topic.csdn.net/u/20110922/10/e4f3641a-1f31-4d35-80da-7268605d2d51.html(一參考答案)。
  • ??? ok,這13道題加上此前本博客陸陸續(xù)續(xù)整理的微軟面試187題:重啟開源,分享無限--誠邀你加入微軟面試187題的解題中,至此,本博客內(nèi)已經(jīng)整理了整整200道面試題。

    后續(xù)整理

    ??? 以下是后續(xù)整理的最新面試題,不斷更新中(2011.09.26).....

    14、騰訊最新面試題:服務(wù)器內(nèi)存1G,有一個2G的文件,里面每行存著一個QQ號(5-10位數(shù)),怎么最快找出出現(xiàn)過最多次的QQ號。

    以下是個人所建第Algorithms_12群內(nèi)朋友的聊天記錄:

    ??? 首先你要注意到,數(shù)據(jù)存在服務(wù)器,存儲不了(內(nèi)存存不了),要想辦法統(tǒng)計每一個qq出現(xiàn)的次數(shù)。
    比如,因為內(nèi)存是1g,首先 你用hash 的方法,把qq分配到10個(這個數(shù)字可以變動,比較)文件(在硬盤中)。
    ??? 相同的qq肯定在同一個文件中,然后對每一個文件,只要保證每一個文件少于1g的內(nèi)存,統(tǒng)計每個qq的次數(shù),可以使用hash_map(qq, qq_count)實現(xiàn)。然后,記錄每個文件的最大訪問次數(shù)的qq,最后,從10個文件中找出一個最大,即為所有的最大。更多讀者可以參見此文:海量數(shù)據(jù)處理面試題集錦與Bit-map詳解?

    ??? 那若面試官問有沒有更高效率的解法之類的?這時,你可以優(yōu)化一下,但是這個速度很快,hash函數(shù),速度很快,他肯定會問,你如何設(shè)計,用bitmap也行。

    15、百度今天的筆試題:在一維坐標(biāo)軸上有n個區(qū)間段,求重合區(qū)間最長的兩個區(qū)間段。

    16、華為社招現(xiàn)場面試1:請使用代碼計算1234567891011121314151617181920*2019181716151413121110987654321 。

    華為面試2:1分2分5分的硬幣,組成1角,共有多少種組合。

    17、百度筆試題:

    一、系統(tǒng)有很多任務(wù),任務(wù)之間有依賴,比如B依賴于A,則A執(zhí)行完后B才能執(zhí)行
    ? (1)不考慮系統(tǒng)并行性,設(shè)計一個函數(shù)(Task *Ptask,int Task_num)不考慮并行度,最快的方法完成所有任務(wù)。
    ? (2)考慮并行度,怎么設(shè)計
    ? typedef struct{
    ???? ?int ID;
    ?? ? int * child;
    ??? ? int child_num;
    ? }Task;
    ? 提供的函數(shù):
    ??? bool doTask(int taskID);無阻塞的運行一個任務(wù);
    ? ? int waitTask(int timeout);返回運行完成的任務(wù)id,如果沒有則返回-1;
    ?? ?bool killTask(int taskID);殺死進(jìn)程

    二、必答題(各種const)

    1、解釋下面ptr含義和不同
    double* ptr = &value;
    ? ? //ptr是一個指向double類型的指針,ptr的值可以改變,ptr所指向的value的值也可以改變?
    const double* ptr = &value
    ? ? //ptr是一個指向const double類型的指針,ptr的值可以改變,ptr所指向的value的值不可以改變
    double* const ptr=&value
    ? ? //ptr是一個指向double類型的指針,ptr的值不可以改變,ptr所指向的value的值可以改變
    const double* const ptr=&value
    ? ? //ptr是一個指向const double類型的指針,ptr的值不可以改變,ptr所指向的value的值也不可以改變
    2、去掉const屬性,例: ?const double value = 0.0f; ?double* ptr = NULL;怎么才能讓ptr指向value?
    ? ? 強(qiáng)制類型轉(zhuǎn)換,去掉const屬性,如ptr = <const_cast double *>(&value);

    http://topic.csdn.net/u/20110925/16/e6248e53-1145-4815-8d24-9c9019d24bd8.html?seed=1665205011&r=75709169#r_75709169

    18、如果用一個循環(huán)數(shù)組q[0..m-1]表示隊列時,該隊列只有一個隊列頭指針front,不設(shè)隊列尾指針rear,求這個隊列中從隊列投到隊列尾的元素個數(shù)(包含隊列頭、隊列尾)(華賽面試題、騰訊筆試題)。

    19、昨晚淘寶筆試題:

    1. 設(shè)計相應(yīng)的數(shù)據(jù)結(jié)構(gòu)和算法,盡量高效的統(tǒng)計一片英文文章(總單詞數(shù)目)里出現(xiàn)的所有英文單詞,按照在文章中首次出現(xiàn)的順序打印輸出該單詞和它的出現(xiàn)次數(shù)。

    2、有一棵樹(樹上結(jié)點為字符串或者整數(shù)),請寫代碼將樹的結(jié)構(gòu)和數(shù)據(jù)寫到一個文件中,并能通過讀取該文件恢復(fù)樹結(jié)構(gòu)?。

    20、13個球一個天平,現(xiàn)知道只有一個和其它的重量不同,問怎樣稱才能用三次就找到那個球?(http://zhidao.baidu.com/question/66024735.html
    )。

    21、搜狗筆試題:一個長度為n的數(shù)組a[0],a[1],...,a[n-1]。現(xiàn)在更新數(shù)組的名個元素,即a[0]變?yōu)閍[1]到a[n-1]的積,a[1]變?yōu)閍[0]和a[2]到a[n-1]的積,...,a[n-1]為a[0]到a[n-2]的積(就是除掉當(dāng)前元素,其他所有元素的積)。
    程序要求:
    要求具有線性復(fù)雜度。
    不能使用除法運算符。

    ??? 思路:left[i]存儲a[i]之前的乘積,right[i]存儲a[i]之后的乘積,那么a[i]=left[i]*right[i] 。

    ??? 不過,left的計算從左往右掃的時候得出,right是從右往左掃得出。因為就是當(dāng)中某個元素的 左邊所有元素與右邊所有元素的乘積,就這么簡單。所以計算a[i]=left[i]*right[i]時,直接出結(jié)果。

    22、騰訊高水平復(fù)試題:

    1.有不同的手機(jī)終端,如iphone,安卓,Symbian,不同的終端處理不一樣,設(shè)計一種服務(wù)器和算法實現(xiàn)對不同的終端的處理。
    2.設(shè)計一種內(nèi)存管理算法。?
    3.A向B發(fā)郵件,B收到后讀取并發(fā)送收到,但是中間可能丟失了該郵件,怎么設(shè)計一種最節(jié)省的方法,來處理丟失問題。?
    4.設(shè)計一種算法求出算法復(fù)雜度 。

    23、人人筆試1:一個人上臺階可以一次上1個,2個,或者3個,問這個人上n層的臺階,總共有幾種走法? ? ? ? ?人人筆試2:在人人好友里,A和B是好友,B和C是好友,如果A 和C不是好友,那么C是A的二度好友,在一個有10萬人的數(shù)據(jù)庫里,如何在時間0(n)里,找到某個人的十度好友。 24、淘寶算法面試題:兩個用戶之間可能互相認(rèn)識,也可能是單向的認(rèn)識,用什么數(shù)據(jù)結(jié)構(gòu)來表示?如果一個用戶不認(rèn)識別人,而且別人也不認(rèn)識他,那么他就是無效節(jié)點,如何找出這些無效節(jié)點?自定義數(shù)據(jù)接口并實現(xiàn)之,要求盡可能節(jié)約內(nèi)存和空間復(fù)雜度。 25、淘寶筆試題:對于一顆完全二叉樹,要求給所有節(jié)點加上一個pNext指針,指向同一層的相鄰節(jié)點;如果當(dāng)前節(jié)點已經(jīng)是該層的最后一個節(jié)點,則將pNext指針指向NULL;給出程序?qū)崿F(xiàn),并分析時間復(fù)雜度和空間復(fù)雜度。 26、騰訊面試題:給你5個球,每個球被抽到的可能性為30、50、20、40、10,設(shè)計一個隨機(jī)算法,該算法的輸出結(jié)果為本次執(zhí)行的結(jié)果。輸出A,B,C,D,E即可。 27、搜狐筆試題:給定一個實數(shù)數(shù)組,按序排列(從小到大),從數(shù)組從找出若干個數(shù),使得這若干個數(shù)的和與M最為接近,描述一個算法,并給出算法的復(fù)雜度。 28、蘋果面試題:write a function that will trigger a prefetch address abort exception。 29、阿里巴巴研究院(2009): 1. 有無序的實數(shù)列V[N],要求求里面大小相鄰的實數(shù)的差的最大值,關(guān)鍵是要求線性空間和線性時間 2. 25匹賽馬,5個跑道,也就是說每次有5匹馬可以同時比賽。問最少比賽多少次可以知道跑得最快的5匹馬 3. 有一個函數(shù)int getNum(),每運行一次可以從一個數(shù)組V[N]里面取出一個數(shù),N未知,當(dāng)數(shù)取完的時候,函數(shù)返回NULL。現(xiàn)在要求寫一個函數(shù)int get(),這個函數(shù)運行一次可以從V[N]里隨機(jī)取出一個數(shù),而這個數(shù)必須是符合1/N平均分布的,也就是說V[N]里面任意一個數(shù)都有1/N的機(jī)會被取出,要求空間復(fù)雜度為O(1) Given a head pointer pointing to a linked list ,please write a function that sort the list
    in increasing order. You are not allowed to use temporary array or memory copy
    struct
    {
    ? int data;
    ? struct S_Node *next;
    }Node;
    Node * sort_link_list_increasing_order (Node *pheader):

    更新至2011.09.30....

    ? ? 如果各位對上面的題目有好的思路,或者還有好的面試題分享,歡迎添加到本文評論下,或者發(fā)至我的郵箱:zhoulei0709@yahoo.cn。謝謝大家。July、2011.09.30。


    總結(jié)

    以上是生活随笔為你收集整理的九月腾讯,创新工场,淘宝等公司最新面试三十题(更新至10.04)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。