九月騰訊,創新工場,淘寶等公司最新面試三十題(更新至10.04)

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

引言???

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

最新面試十三題

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

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

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

  9. ?

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

  10. ?

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

  11. ?

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

    創新工場面試題:abcde五人打漁,打完睡覺,a先醒來,扔掉1條魚,把剩下的分成5分,拿一份走了;b再醒來,也扔掉1條,把剩下的分成5份,拿一份走了;然后cde都按上面的方法取魚。問他們一共打了多少條魚,寫程序和算法實現。提示:共打了多少條魚的結果有很多。但求最少打的魚的結果是3121條魚(應該找這5個人問問,用什么工具打了這么多條魚)。(http://blog.csdn.net/nokiaguy/article/details/6800209)。
  13. 我們有很多瓶無色的液體,其中有一瓶是毒藥,其它都是蒸餾水,實驗的小白鼠喝了以后會在5分鐘后死亡,而喝到蒸餾水的小白鼠則一切正常。現在有5只小白鼠,請問一下,我們用這五只小白鼠,5分鐘的時間,能夠檢測多少瓶液體的成分?
    淘寶2012筆試(研發類):http://topic.csdn.net/u/20110922/10/e4f3641a-1f31-4d35-80da-7268605d2d51.html(一參考答案)。

??? ok,這13道題加上此前本博客陸陸續續整理的微軟面試187題:重啟開源,分享無限--誠邀你加入微軟面試187題的解題中,至此,本博客內已經整理了整整200道面試題。

后續整理

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

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

以下是個人所建第Algorithms_12群內朋友的聊天記錄:

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

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

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

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

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

17、百度筆試題:

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

二、必答題(各種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?
? ? 強制類型轉換,去掉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、如果用一個循環數組q[0..m-1]表示隊列時,該隊列只有一個隊列頭指針front,不設隊列尾指針rear,求這個隊列中從隊列投到隊列尾的元素個數(包含隊列頭、隊列尾)(華賽面試題、騰訊筆試題)。

19、昨晚淘寶筆試題:

1. 設計相應的數據結構和算法,盡量高效的統計一片英文文章(總單詞數目)里出現的所有英文單詞,按照在文章中首次出現的順序打印輸出該單詞和它的出現次數。

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

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

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

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

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

22、騰訊高水平復試題:

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

23、人人筆試1:一個人上臺階可以一次上1個,2個,或者3個,問這個人上n層的臺階,總共有幾種走法?
? ? ? ?人人筆試2:在人人好友里,A和B是好友,B和C是好友,如果A 和C不是好友,那么C是A的二度好友,在一個有10萬人的數據庫里,如何在時間0(n)里,找到某個人的十度好友。
24、淘寶算法面試題:兩個用戶之間可能互相認識,也可能是單向的認識,用什么數據結構來表示?如果一個用戶不認識別人,而且別人也不認識他,那么他就是無效節點,如何找出這些無效節點?自定義數據接口并實現之,要求盡可能節約內存和空間復雜度。
25、淘寶筆試題:對于一顆完全二叉樹,要求給所有節點加上一個pNext指針,指向同一層的相鄰節點;如果當前節點已經是該層的最后一個節點,則將pNext指針指向NULL;給出程序實現,并分析時間復雜度和空間復雜度。
26、騰訊面試題:給你5個球,每個球被抽到的可能性為30、50、20、40、10,設計一個隨機算法,該算法的輸出結果為本次執行的結果。輸出A,B,C,D,E即可。
27、搜狐筆試題:給定一個實數數組,按序排列(從小到大),從數組從找出若干個數,使得這若干個數的和與M最為接近,描述一個算法,并給出算法的復雜度。
28、蘋果面試題:write a function that will trigger a prefetch address abort exception。
29、阿里巴巴研究院(2009):
1. 有無序的實數列V[N],要求求里面大小相鄰的實數的差的最大值,關鍵是要求線性空間和線性時間
2. 25匹賽馬,5個跑道,也就是說每次有5匹馬可以同時比賽。問最少比賽多少次可以知道跑得最快的5匹馬
3. 有一個函數int getNum(),每運行一次可以從一個數組V[N]里面取出一個數,N未知,當數取完的時候,函數返回NULL。現在要求寫一個函數int get(),這個函數運行一次可以從V[N]里隨機取出一個數,而這個數必須是符合1/N平均分布的,也就是說V[N]里面任意一個數都有1/N的機會被取出,要求空間復雜度為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....

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


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454700.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454700.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454700.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

oracle 存long,ORACLE中LONG類型字段的存取

&#xfeff;&#xfeff;Oracle中存取4000字節以上大文本類型可以用此數據類型&#xff0c;其在C#中的讀寫方法如下&#xff1a;注意需要引用 System.Data.OracleClient然后添加命名空間&#xff1a;using System.Data.OracleClientORALCE建庫腳本&#xff1a;CREATE TABLE TE…

創建office一直轉圈_Windows寫字板出現廣告條幅:推薦用戶使用在線版Office

自Windows 95開始&#xff0c;寫字板(Wordpad)應用就一直預裝在Windows操作系統中。它是一款非常簡單的文本編輯器&#xff0c;在功能方面介于記事本和Word之間。近日Rafael Rivera發現微軟正在為這款古老的寫字板添加新功能--在應用中添加廣告橫幅。這個廣告橫幅就是推薦那些寫…

2017軟件工程實踐第二次作業

1、 項目地址&#xff1a;https://github.com/one-piece-zero/sudoku 2、PSP表格記錄的估計耗時 3、解題思路&#xff1a; 在拿到這個題目的時候&#xff0c;我最早想到的是大一下學期做的程序語言綜合設計實踐中的N皇后問題&#xff0c;這兩個題目之間有許多的類似之處&#x…

CentOS7 安裝或遷移 wordpress(完整遷移)

一、安裝Apache web服務器 安裝Apache web服務器&#xff1a; yum install -y httpd # 使用yum安裝 systemctl start httpd # 啟動Apache服務器 systemctl enable httpd # Apache服務器開機后自動啟動 使用瀏覽器打開http://127.0.0.1檢查Apache安裝是否成功。成功后…

WinForm部署問題

WinForm部署問題 1、解決&#xff1a;This implementation is not part of the Windows Platform 問題&#xff1f; 一&#xff1a;單擊 開始 &#xff0c;單擊 運行 &#xff0c;鍵入 gpedit.msc &#xff0c;然后單擊 確定 。    二&#xff1a;依次展開 計算機配置 &…

oracle 未找到段的存儲定義,Exp-00003 no storage definition found issue in oracle 11g (未找到段 (0,0) 的存儲定義)...

連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit ProductionWith the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,Data Mining and Real Application Tes已導出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集服務…

signal軟件如何退出賬號_超好用的手機視頻剪輯軟件Videoleap內購分享

注意事項【必讀】&#xff1a;1.必須按照下面的教程操作&#xff0c;教程講的很詳細。2.如果遇到帳號密碼錯誤&#xff0c;先看本頁面新密碼再登陸&#xff0c;別亂試密碼。3.如果手機上有你購買的這個軟件&#xff0c;請先卸載&#xff0c;再用我們的蘋果id登陸下載&#xff0…

MySQL 常用內置函數

MySQL官方文檔&#xff1a;https://dev.mysql.com/doc/refman/5.6/en/func-op-summary-ref.html MySQL數據庫提供了很多函數包括 一、數學函數 二、字符串函數 三、日期時間函數 四、聚合函數(常用于GROUP BY從句的SELECT查詢中) 五、條件判斷函數 六、系統信息函數 七、…

python之eval函數,map函數,zip函數

eval(str)函數很強大&#xff0c;官方解釋為&#xff1a;將字符串str當成有效的表達式來求值并返回計算結果。所以&#xff0c;結合math當成一個計算器很好用。 eval()函數常見作用有&#xff1a; 1、計算字符串中有效的表達式&#xff0c;并返回結果 >>> eval(pow(2,…

第一個servlet小程序

第一個servlet小程序 com.fry.servlet.HelloServlet 1 package com.fry.servlet;2 3 import javax.servlet.ServletException;4 import javax.servlet.http.HttpServlet;5 import javax.servlet.http.HttpServletRequest;6 import javax.servlet.http.HttpServletResponse;7 im…

騰訊校園招聘面試的秘密

轉自公司同事戴釗的文章 由于從事基層管理崗位的原因&#xff0c;最近兩年有機會在武漢、南京、上海等地進行校園招聘&#xff0c;為公司選拔優秀人才&#xff0c;在這個過程中接觸過一百多名各種類型的應聘畢業生&#xff0c;我深深為這些莘莘學子渴望進入騰訊的熱情所感動&am…

win10開啟oracle服務器配置,Windows環境(Win10)下安裝、配置服務器類Oracle Database 11g Release 2...

該篇為服務器類Oracle Database 11gRelease 2的安裝、配置&#xff0c;若需安裝、配置桌面類(通常是選擇桌面類&#xff0c;如果是將本機作為服務器來使用&#xff0c;則選擇服務器類)&#xff0c;可參考“Windows環境(Win10)下安裝、配置桌面類Oracle Database 11g Release 2”…

簡單的機器學習程序_人體動作識別小程序【機器學習 人工智能】

人體動作識別(Human activity recognition)是健康領域一個熱點問題&#xff0c;它通過加速度計&#xff0c;陀螺儀等傳感器記錄人體運動數據&#xff0c;對人體動作進行識別。最近用微信小程序做了一個動作識別的項目&#xff0c;同時嘗試部署了單片機。首先奉上b站的視頻鏈接&…

python基礎查漏補缺1--算數、字符串與變量

1. math相關函數 函 數描 述ceil(x) 大于或等于x的整數cos(x)  x的余弦 degrees(x)將x的弧度轉換為度數exp(x)e的x次方factorial(n)計算n的階乘(n!),n 必須為整數log(x)以e為底的x的對數log(x,b)以b為底的x的對數pow(x,y)x的y次方radians(s)將x轉換為弧度數sin(x)x的正弦…

CSS布局說——可能是最全的

前言 現在&#xff0c;我們被稱為前端工程師。然而&#xff0c;早年給我們的稱呼卻是頁面仔。或許是職責越來越大&#xff0c;整體的前端井噴式的發展&#xff0c;使我們只關注了js&#xff0c;而疏遠了css和html。 其實&#xff0c;我們可能經常在聊組件化&#xff0c;咋地咋地…

php dingo和jwt,dingo配合laravel、JWT使用

介紹&#xff1a;dingo api包是給laravel和lumen提供的Restful的工具包&#xff0c;它可以與jwt組件一起配合快速的完成用戶認證&#xff0c;同時對于數據和運行過程中所產生的異常能夠捕獲到并且可以做出對應的響應。dingo文檔地址&#xff1a;https://github.com/dingo/api/w…

重啟開源,分享無限--微軟面試187題精選

重啟開源&#xff0c;分享無限--誠邀你加入微軟面試187題的解題中 前期回顧 我想&#xff0c;只要是稍微瀏覽過我博客的朋友都知道&#xff0c;本博客內總體上大致分為兩個部分的內容&#xff1a;1、算法&#xff08;如十六個經典算法研究系列&#xff09;&#xff1b;2、面試與…

二三星縮水軟件手機版_還在抱怨三星手機不好用?用這些軟件立馬解決

S10系列上市讓三星在國內的銷量有所回暖&#xff0c;但是很多小伙伴拿到手機后都在吐槽三星的軟件工程師不行&#xff0c;比如手勢操作太難用了&#xff0c;不如小米人性化。其實這只是你沒找到秘訣而已&#xff0c;三星手機原來還可以這樣使用&#xff1f;三星有一個官方軟件&…

使用Settings Bundle為程序添加設置項

創建一個Demo來學習一個Setting Bundle為程序存儲設置項 Settings Bundle是在自己的程序中建立的一組文件&#xff0c;利用它可以告訴設備中的Settings程序我們寫的程序有哪些設置項。用戶在Settings程序中設置好相關相關選項后回到我們自己的程序&#xff0c;自己的程序中的對…

Netty自娛自樂之協議棧設計

---恢復內容開始--- 俺工作已經一年又6個月了&#xff0c;想想過的真快&#xff0c;每天寫業務&#xff0c;寫業務&#xff0c;寫業務......。然后就是祈禱著&#xff0c;這次上線不要出現線上bug。繼續這每天無聊的增刪改查&#xff0c;學習學習一下自己感興趣的事&#xff0c…