小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

最新九月百度人搜,阿里巴巴,騰訊華為京東360筆試面試二十題

 richsky 2012-09-14

引言

    自發(fā)表上一篇文章至今(事實上,上篇文章更新了近3個月之久),blog已經(jīng)停了3個多月,而在那之前,每月都不曾斷過。正如上一篇文章支持向量機(jī)通俗導(dǎo)論(理解SVM的三層境界)末尾所述:”額,blog許久未有更新了,因為最近實在忙,無暇顧及blog。“與此同時,工作之余,也在一直閑心研究學(xué)習(xí)數(shù)據(jù)挖掘:"神經(jīng)網(wǎng)絡(luò)將可能作為Top 10 Algorithms in Data Mining之番外篇第1篇,同時,k-最近鄰法(k-nearest neighbor,kNN)算法談到kd樹將可能作為本系列第三篇。這是此系列接下來要寫的兩個算法,剛好項目中也要用到KD樹“。

    但很顯然,若要等到下一篇數(shù)據(jù)挖掘系列的文章時,說不定要到年底去了,而最近的這段時間,9月,正是各種校招/筆試/面試火熱的時節(jié),自己則希望能幫助到這些找工作的朋友,故此,怎能無動于衷,所以,3個多月后,blog今天更新了。

    再者,雖然如我的這條微博:http://weibo.com/1580904460/yzs72mmFZ所述,blog自10年10月開通至11年10月,一年的時間內(nèi)整理了300多道面試題(這300道題全部集錦在此文中第一部分:http://blog.csdn.net/v_july_v/article/details/6543438)。但畢竟那些題已經(jīng)是前年或去年的了,筆試面試題雖然每年類型變化不大,但畢竟它年年推陳出新,存著就有其合理性。

    OK,以下是整理自8月下旬至9月中旬各大公司的筆試面試二十題,相信一定能給正在參加各種校招的諸多朋友多少幫助,學(xué)習(xí)參考或借鑒當(dāng)然,你手頭上若有好的筆試/面試題,歡迎通過微博私信:http://weibo.com/julyweibo,或郵箱:zhoulei0907@yahoo.cn發(fā)給我,或者干脆直接評論在本文下,再者,如果你對以下任何一題有任何看法.想法.思路或建議,歡迎留言評論,大家一起討論,享受思考的樂趣)。

九月百度人搜,阿里巴巴,騰訊華為京東筆/面試二十題

  1. 9月11日, 京東:

    談?wù)勀銓γ嫦驅(qū)ο缶幊痰恼J(rèn)識

  2. 8月20日,金山面試,題目如下:
        數(shù)據(jù)庫1中存放著a類數(shù)據(jù),數(shù)據(jù)庫2中存放著以天為單位劃分的表30張(比如table_20110909,table_20110910,table_20110911),總共是一個月的數(shù)據(jù)。表1中的a類數(shù)據(jù)中有一個字段userid來唯一判別用戶身份,表2中的30張表(每張表結(jié)構(gòu)相同)也有一個字段userid來唯一識別用戶身份。如何判定a類數(shù)據(jù)庫的多少用戶在數(shù)據(jù)庫2中出現(xiàn)過?
    來源:http://topic.csdn.net/u/20120820/23/C6B16CCF-EE15-47C0-9B15-77497291F2B9.html。
  3. 百度實習(xí)筆試題(2012.5.6)
      簡答題1
    一個單詞單詞字母交換,可得另一個單詞,如army->mary,成為兄弟單詞。提供一個單詞,在字典中找到它的兄弟。描述數(shù)據(jù)結(jié)構(gòu)和查詢過程。
      簡答題2
    線程和進(jìn)程區(qū)別和聯(lián)系。什么是“線程安全”
    簡答題3
    C和C++怎樣分配和釋放內(nèi)存,區(qū)別是什么
      算法題1
    一個url指向的頁面里面有另一個url,最終有一個url指向之前出現(xiàn)過的url或空,這兩種情形都定義為null。這樣構(gòu)成一個單鏈表。給兩條這樣單鏈表,判斷里面是否存在同樣的url。url以億級計,資源不足以hash。
      算法題2
    數(shù)組al[0,mid-1] 和 al[mid,num-1],都分別有序。將其merge成有序數(shù)組al[0,num-1],要求空間復(fù)雜度O(1)
      系統(tǒng)設(shè)計題
    百度搜索框的suggestion,比如輸入北京,搜索框下面會以北京為前綴,展示“北京愛情故事”、“北京公交”、“北”等等搜索詞。
    如何設(shè)計使得空間和時間復(fù)雜度盡量低。
  4. 人搜筆試
  5. 1. 快排每次以第一個作為主元,問時間復(fù)雜度是多少?(O(N*logN))
      2. T(N) = N + T(N/2)+T(2N), 問T(N)的時間復(fù)雜度是多少?(O(N))
      3. 從(0,1)中平均隨機(jī)出幾次才能使得和超過1?(e)
      4.編程題:
     一棵樹的節(jié)點定義格式如下:
     struct Node{
        Node* parent;
        Node* firstChild; // 孩子節(jié)點
        Node* sibling; // 兄弟節(jié)點 
    }
    要求非遞歸遍歷該樹。
    思路:采用隊列存儲,來遍歷節(jié)點。
      5. 算法題:
    有N個節(jié)點,每兩個節(jié)點相鄰,每個節(jié)點只與2個節(jié)點相鄰,因此,N個頂點有N-1條邊。每一條邊上都有權(quán)值wi,定義節(jié)點i到節(jié)點i+1的邊為wi。
    求:不相鄰的權(quán)值和最大的邊的集合。
  6. 2011,人搜面試,所投職位:搜索研發(fā)工程師:面試題回憶 
         1、刪除字符串開始及末尾的空白符,并且把數(shù)組中間的多個空格(如果有)符轉(zhuǎn)化為1個。
         2、求數(shù)組(元素可為正數(shù)、負(fù)數(shù)、0)的最大子序列和。 
         3、鏈表相鄰元素翻轉(zhuǎn),如a->b->c->d->e->f-g,翻轉(zhuǎn)后變?yōu)椋篵->a->d->c->f->e->g 
         4、鏈表克隆。鏈表的結(jié)構(gòu)為: 
         typedef struct list { 
             int data; //數(shù)據(jù)字段 
         list *middle; //指向鏈表中某任意位置元素(可指向自己)的指針 
         list *next;//指向鏈表下一元素 
         } list; 
         5、100萬條數(shù)據(jù)的數(shù)據(jù)庫查詢速度優(yōu)化問題,解決關(guān)鍵點是:根據(jù)主表元素特點,把主表拆分并新建副表,并且利用存儲過程保證主副表的數(shù)據(jù)一致性。(不用寫代碼) 
         6、求正整數(shù)n所有可能的和式的組合(如;4=1+1+1+1、1+1+2、1+3、2+1+1、2+2) 
         7、求旋轉(zhuǎn)數(shù)組的最小元素(把一個數(shù)組最開始的若干個元素搬到數(shù)組的末尾,我們稱之為數(shù)組的旋轉(zhuǎn)。輸入一個排好序的數(shù)組的一個旋轉(zhuǎn),輸出旋轉(zhuǎn)數(shù)組的最小元素。例如數(shù)組{3, 4, 5, 1, 2}為{1, 2, 3, 4, 5}的一個旋轉(zhuǎn),該數(shù)組的最小值為1。) 
         8、找出兩個單鏈表里交叉的第一個元素 
         9、字符串移動(字符串為*號和26個字母的任意組合,把*號都移動到最左側(cè),把字母移到最右側(cè)并保持相對順序不變),要求時間和空間復(fù)雜度最小 
         10、時間復(fù)雜度為O(1),怎么找出一個棧里的最大元素   
         11、線程、進(jìn)程區(qū)別 
         12、static在C和C++里各代表什么含義 
         13、const在C/C++里什么意思 
         14、常用linux命令 
         15、解釋Select/Poll模型 
  7. 百度,網(wǎng)易,阿里巴巴等面試題:http://blog.csdn.net/hopeztm/article/category/1201028;
  8. 8月30日,網(wǎng)易有道面試題
    var tt = 'aa';
    function test()
    {
      alert(tt);
      var tt = 'dd';
      alert(tt);
    }
    test();  
  9. 8月31日,百度面試題:不使用隨機(jī)數(shù)的洗牌算法,詳情:http://topic.csdn.net/u/20120831/10/C837A419-DFD4-4326-897C-669909BD2086.html;
  10. 9月6日,阿里巴巴面試:
    1、介紹一下你自己。
    2、介紹一下你認(rèn)為做的最好的一個項目。
    3、請用五分鐘的時間把你做的項目的流程圖畫一下。
    4、項目中你遇到的難點是什么?怎么解決的?
    5、項目中你認(rèn)為哪個技術(shù)是你最拿手的?
    6、介紹一下HTTP協(xié)議
    7、如何把一個大的日志文件哈希到不同的哈希表中,這些哈希表的存儲格式是什么?
    8、linux網(wǎng)絡(luò)編程,畫一個c/s通信的流程
    9、多線程了解多少,做過的項目中有沒有用到過?
    10、描述一下動態(tài)規(guī)劃的思想
    11、快排。
    12、內(nèi)存分配方式有哪幾種?代碼段放在哪個內(nèi)存區(qū)?static int a[1024][1024][1024]放在哪個區(qū)?會不會有異常?
    13、如何表示圖?
    14、如何驗證圖的連通性?
    15、對互聯(lián)網(wǎng)的業(yè)務(wù)和技術(shù)是否關(guān)注?
  11. 9月7日,一道華為上機(jī)題:
    題目描述: 選秀節(jié)目打分,分為專家評委和大眾評委,score[] 數(shù)組里面存儲每個評委打的分?jǐn)?shù),judge_type[] 里存儲與 score[] 數(shù)組對應(yīng)的評委類別,judge_type == 1,表示專家評委,judge_type == 2,表示大眾評委,n表示評委總數(shù)。打分規(guī)則如下:專家評委和大眾評委的分?jǐn)?shù)先分別取一個平均分(平均分取整),然后,總分 = 專家評委平均分 * 0.6 + 大眾評委 * 0.4,總分取整。如果沒有大眾評委,則 總分 = 專家評委平均分,總分取整。函數(shù)最終返回選手得分。
    函數(shù)接口 int cal_score(int score[], int judge_type[], int n)  
     上機(jī)題目需要將函數(shù)驗證,但是題目中默認(rèn)專家評委的個數(shù)不能為零,但是如何將這種專家數(shù)目為0的情形排除出去。
    來源:http://topic.csdn.net/u/20120907/15/c30eead8-9e49-41c2-bd11-c277030ad17a.html;
  12. 9月8日,騰訊面試題:
    假設(shè)兩個字符串中所含有的字符和個數(shù)都相同我們就叫這兩個字符串匹配,
     比如:abcda和adabc,由于出現(xiàn)的字符個數(shù)都是相同,只是順序不同,
     所以這兩個字符串是匹配的。要求高效!
    我想,你們能想到的,這篇blog里:http://blog.csdn.net/v_JULY_v/article/details/6347454都已經(jīng)有了。
  13. 阿里云,搜索引擎中5億個url怎么高效存儲;
  14. 創(chuàng)新工場微博,前幾天才發(fā)布的難道不少人的的牛題:http://t.qq.com/iwrecruiting?pgv_ref=im.WBlog.guest&ptlang=2052
  15. 4**9 的筆試題,比較簡單:
    1.求鏈表的倒數(shù)第二個節(jié)點
    2.有一個整數(shù)數(shù)組,求數(shù)組中第二大的數(shù)

  16.  阿里巴巴二道題
    第一道:
    對于給定的整數(shù)集合S,求出最大的d,使得a+b+c=d。a,b,c,d互不相同,且都屬于S。集合的元素個數(shù)小于等于2000個,元素的取值范圍在[],假定可用內(nèi)存空間為100MB,硬盤使用空間無限大,試分析時間和空間復(fù)雜度,找出最快的解決方法。
    阿里巴巴第二道(研發(fā)類)
    筆試題1,原題大致描述有一大批數(shù)據(jù),百萬級別的。數(shù)據(jù)項內(nèi)容是:用戶ID、科目ABC各自的成績。其中用戶ID為0~1000萬之間,且是連續(xù)的,可以唯一標(biāo)識一條記錄??颇緼BC成績均在0~100之間。有兩塊磁盤,空間大小均為512M,內(nèi)存空間64M。
    1) 為實現(xiàn)快速查詢某用戶ID對應(yīng)的各科成績,問磁盤文件及內(nèi)存該如何組織;
    2) 改變題目條件,ID為0~10億之間,且不連續(xù)。問磁盤文件及內(nèi)存該如何組織;
    3) 在問題2的基礎(chǔ)上,增加一個需求。在查詢各科成績的同時,獲取該用戶的排名,問磁盤文件及內(nèi)存該如何組織。
    筆試題2:代碼實現(xiàn)計算字符串的相似度。 
  17. 9月11日,京東全套筆試題:
  18. 群友壯壯在我的算法群里貼了如下一個圖(而它就是我寫的編程藝術(shù)系列第一章左旋轉(zhuǎn)字符串:http://blog.csdn.net/v_JULY_v/article/details/6322882的題):
    上面文章來源:http://www.cnblogs.com/bakari/archive/2012/09/09/2677155.html。當(dāng)然,有些書上也收錄過此題,并給出了與我思路類似的解答,如下圖所示:
  19. 360PHP筆試全套試題:

    1、手工寫代碼一個HTML提交表單,注意(表單對齊方式)

    1. JavaScript代碼  
    2. 1. <script type="text/javascript">   
    3. 2. function check_form()   
    4. 3. {   
    5. 4.   var username = document.getElementById('username').value;   
    6. 5.   if (username == '') {   
    7. 6.     alert('非法用戶名');   
    8. 7.     return false;   
    9. 8.   } else {   
    10. 9.     return true;   
    11. 10.  }   
    12. 11. /*  
    13. 12. 更牛B的創(chuàng)意呢,你可以寫成jQuery的  
    14. 13.  
    15. 14.  if ($.trim($('#username').val()) == '') {  
    16. 15.   alert('非法用戶名');  
    17. 16.   $('#username').focus();  
    18. 17.   return false;  
    19. 18.  } esle {  
    20. 19.   return true;  
    21. 20.  }  
    22. 21. */   
    23. 22. }   
    24. 23. </script>   

    XML/HTML代碼

    1. 1. <form name="from1" method="POST" action="login.php" onsubmit="return check_form()">   
    2. 2. <table border="1" width="100%">   
    3. 3. <tr>   
    4. 4.   <td align="right">用戶名: </td>   
    5. 5.   <td><input type="text" id="username" name="username"></td>   
    6. 6. </tr>   
    7. 7. <tr>   
    8. 8.   <td align="right">密碼:</td>   
    9. 9.   <td><input type="password" id="password" name="password"></td>   
    10. 10 </tr>   
    11. 11. <tr>   
    12. 12.   <td colspan="2" align="right"><input type="submit" value="提交"></td>   
    13. 13. </tr>   
    14. 14. </table>   
    15. 15. </form>   

    2、寫一段上面表單的PHP驗證程序

    PHP代碼

    1. 1. <?php   
    2. 2. /**  
    3. 3. * 如果想好好表現(xiàn)也可以不按這個流程來寫,設(shè)計個OO風(fēng)格的也許會+分,可以耐心的多寫會但不要寫亂這可不是在鍵盤上那么容易  
    4. 4. */   
    5. 5. $db = mysql_connect('localhost''root''');   
    6. 6. mysql_select_db('db_name');   
    7. 7.   
    8. 8. /* 不要吝嗇多寫代碼這個過濾函數(shù)要加的,此題也考察安全意識 */   
    9. 9. $username = mysql_real_escape_string($_POST['username']);   
    10. 10. $password = mysql_real_escape_string($_POST['password']);   
    11. 11.   
    12. 12. $sql = "SELECT PASS FROM UserInfo WHERE USER='{$username}'";   
    13. 13. $query = mysql_query($sql);   
    14. 14. $row = mysql_fetch_assoc($query);   
    15. 15.   
    16. 16. if ( ! $row) {   
    17. 17.   echo "用戶名不存在";   
    18. 18. } else {   
    19. 19.   echo $row['PASS'] == $password ? "密碼正確" : "密碼錯誤";   
    20. 20. }   

    3、繼上一題寫出HTTP請求與接收的報文(摘錄)

    (1)請求行
        請求行由請求方法字段、URL字段和HTTP協(xié)議版本字段3個字段組成,它們用空格分隔。例如,GET /index.html HTTP/1.1。
        HTTP協(xié)議的請求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。這里介紹最常用的GET方法和POST方法。
      GET:當(dāng)客戶端要從服務(wù)器中讀取文檔時,使用GET方法。GET方法要求服務(wù)器將URL定位的資源放在響應(yīng)報文的數(shù)據(jù)部分,回送給客戶端。使用GET方法時,請求參數(shù)和對應(yīng)的值附加在URL后面,利用一個問號(“?”)代表URL的結(jié)尾與請求參數(shù)的開始,傳遞參數(shù)長度受限制。例如,/index.jsp?id=100&op=bind。
      POST:當(dāng)客戶端給服務(wù)器提供信息較多時可以使用POST方法。POST方法將請求參數(shù)封裝在HTTP請求數(shù)據(jù)中,以名稱/值的形式出現(xiàn),可以傳輸大量數(shù)據(jù)。
    (2)請求頭部
        請求頭部由關(guān)鍵字/值對組成,每行一對,關(guān)鍵字和值用英文冒號“:”分隔。請求頭部通知服務(wù)器有關(guān)于客戶端請求的信息,典型的請求頭有:
      User-Agent:產(chǎn)生請求的瀏覽器類型。
      Accept:客戶端可識別的內(nèi)容類型列表。
      Host:請求的主機(jī)名,允許多個域名同處一個IP地址,即虛擬主機(jī)。
    (3)空行
        最后一個請求頭之后是一個空行,發(fā)送回車符和換行符,通知服務(wù)器以下不再有請求頭。
    (4)請求數(shù)據(jù)
        請求數(shù)據(jù)不在GET方法中使用,而是在POST方法中使用。POST方法適用于需要客戶填寫表單的場合。與請求數(shù)據(jù)相關(guān)的最常使用的請求頭是Content-Type和Content-Length。

    4、正則匹配郵箱地址

    PHP代碼

    1. 1. <?php   
    2. 2. $html = "9812ed aboys72@sina.com s9dfasdf$@$ aboys72@sina.vip.com Aboys72@sohu.com linglong__@163-net.com.cn liu.lei@mail.com";   
    3. 3. preg_match_all('/\w+(\.\w+)*@\w+(\.\w+){1,}/'$html$mails);   
    4. 4. print_r($mails);   
    5. 4、SHELL下搜索*.xml文件中含有hello的文件(我在Ubuntu下嘗試命令通過,以前在CentOS也這樣的使用過此命令但是沒有預(yù)期效果)  

    Shell代碼

    1. 1. grep -r hello *.xml   

    5、autoload機(jī)制

    $object = new UFO;時,試圖調(diào)用一個未引入的類文件在系統(tǒng)報錯之前,會嘗試使用__autoload進(jìn)行加載類,如果定義了__autoload方法將按照此規(guī)則進(jìn)行加載類文件

    6、實現(xiàn)strrev()函數(shù)“360奇虎,不使用mb_substr情況下。

    PHP代碼

    1. 1. <?php   
    2. 2. /* 不使用mb_string */   
    3. 3. $string = "虎奇063";   
    4. 4. $length = strlen($string);   
    5. 5. $rev_string = '';   
    6. 6. /* 限UTF-8字符編碼字節(jié)占3,不然還有寫個is_utf8來判斷所占用的字節(jié)數(shù) */   
    7. 7. $byte_len = 3;   
    8. 8. for ($i = 0; $i < $length;) {   
    9. 9.   if (ord(substr($string$i, 1)) > 0xa0) {   
    10. 10.     $rev_string = substr($string$i$byte_len) . $rev_string;   
    11. 11.     $i+= $byte_len;   
    12. 12.   } else {   
    13. 13.   $rev_string = substr($string$i, 1) . $rev_string;   
    14. 14.   $i++;   
    15. 15.   }   
    16. 16. }   
    17. 17. echo $rev_string;   

    7、使用了索引查詢的語句,EXPLAIN

    SQL代碼

    1. 1. SELECT * FROM user where name='a';   
    2. 2.   
    3. 3. SELECT * FROM user where name='a' OR name='b';   
    4. 4.   
    5. 5. SELECT * FROM user where name like 'a%';   

  20. 多玩YY 2012校園招聘筆試題  C++  A

    時間:120分鐘          提示:請注意代碼風(fēng)格

    1、請給出以下程序的輸出:(12分)

    1. class A  
    2. {  
    3. public:  
    4.     A()  
    5.     {  
    6.         puts("In A");  
    7.     }  
    8.     ~A()  
    9.     {  
    10.         puts("Out A");  
    11.     }  
    12. };  
    13.   
    14. class B  
    15. {  
    16. public:  
    17.     B()  
    18.     {  
    19.         puts("In B");  
    20.     }  
    21.     ~B()  
    22.     {  
    23.         puts("Out B");  
    24.     }  
    25. };  
    26.   
    27. class X  
    28. {  
    29. public:  
    30.     X()  
    31.     {  
    32.         puts("In X");  
    33.     }  
    34.     ~X()  
    35.     {  
    36.         puts("Out X");  
    37.     }  
    38.     virtual void test()  
    39.     {  
    40.         puts("test in X");  
    41.     }  
    42. };  
    43.   
    44. class C:public X  
    45. {  
    46. public:  
    47.     C(): b(), a()  
    48.     {  
    49.         puts("In C");  
    50.   
    51.     }  
    52.     ~C()  
    53.     {  
    54.         puts("Out C");  
    55.     }  
    56.     virtual void test()  
    57.     {  
    58.         puts("test in C");  
    59.     }  
    60. private:  
    61.     A a;  
    62.     B b;  
    63. };  
    64.   
    65. int main()  
    66. {  
    67.     X* p = new C;  
    68.     p->test();  
    69.     delete p;  
    70.   
    71.     return 0;  
    72. }   

    2、請簡述以下const的作用(8分)

    1)const int a = 10;
    2)const  int*
    3)int * const a
    4)void T::test() const

    3、請問以下過程調(diào)用的時拷貝構(gòu)造函數(shù)還是賦值運算符:(6分)

    1. class Test{…}  
    2. Test a,b;  
    3. a = b;             1)                                
    4. Test a;  
    5. Test b = a;         2)                                
    6. Test a;  
    7. Test b(a);          3)                                

    4、請完成以下函數(shù)的填空:(9分)

    1. int binarySearch(int from, int to, int target, int *array)  
    2. {  
    3.   /* 
    4.     功能:從array中查找target,返回target在array中的下標(biāo) 
    5.   */  
    6.   if(from <= to)  
    7.   {  
    8.     int middle = (from + to) /2;  
    9.     if(array[middle] == target)  
    10.                        
    11.     else if(array[middle]<target)  
    12.                        
    13.   else  
    14.                        
    15.   }  
    16.   return -1;  
    17. }  

    5、請給出以下程序的輸出:(5分)

    1. class T  
    2. {  
    3. public:  
    4.     T()  
    5.     {  
    6.         puts("T()");  
    7.     }  
    8.     ~T()  
    9.     {  
    10.         puts("~()");  
    11.     }  
    12. private:  
    13. };  
    14.   
    15. void test(T t)  
    16. {  
    17. }  
    18.   
    19. int main()  
    20. {  
    21.     T t;  
    22.     test(t);  
    23.   
    24.     return 0;  
    25. }  

    6、下面的代碼段有幾處錯誤,請根據(jù)程序的意圖,寫出正確的server類(10分)

    提示:這段代碼實現(xiàn)的功能是定期向各個server 發(fā)ping包,各個server對象是在不同時間創(chuàng)建的

    1. class Server  
    2. {  
    3.     Server()  
    4.     {  
    5.     }  
    6.     ~Server()  
    7.     {  
    8.     }  
    9.     void checkSendPing()  
    10.     {  
    11.         /* 
    12.         每隔5秒給該服務(wù)器發(fā)ping 
    13.         */  
    14.         static int lastSendPing = (int)time(NULL);  
    15.         int now = (int)time(NULL);  
    16.         if(now < lastSendPing + 5)  
    17.             return;  
    18.         //send ping to peer  
    19.     }  
    20. private:  
    21. };  
    22.   
    23. void monitorServer(std::vector<Server>& x)  
    24. {  
    25.     /* 
    26.     監(jiān)控所有服務(wù)器的狀態(tài),這個函數(shù)每秒運行一次 
    27.     */  
    28.     for(std::vector<Server>::iterator it = x.begin();  
    29.         it != x.end();++it)  
    30.         it->checkSendPing();  
    31. }  

    7、(編程題)100萬個數(shù)據(jù),數(shù)據(jù)值在0~65535之間,請用盡可能少的內(nèi)存和最快的速度從小到大排序(10分)

    1. void sort(int* array, int n)  
    2. {  
    3.     //n的值在100萬左右  
    4.     //你的實現(xiàn)  
    5. }  

    8、(編程題)請完成如下函數(shù),從長度為n的數(shù)組array中刪除值等于v的元素,返回刪除后的數(shù)組array和元素個數(shù)(10分)

    1. int remove(int* array, int n, int v)  
    2. {  
    3.     //你的實現(xiàn)  
    4. }  

    9、(編程題)請看以下的Maixu結(jié)構(gòu):(15分)

    1. struct Maixu  
    2. {  
    3.     int sid;                       //id  
    4.     std::list<int> userlist:      //隊列  
    5.     int validTime;                //預(yù)定時間,每個結(jié)構(gòu)不一樣,平均5分鐘左右,以秒為單位  
    6.     int leftTime;                 //剩余時間,以秒為單位  
    7. };  

    其中隊列userlist中每一項都在預(yù)定的時間validTime后出隊,比如當(dāng)前隊列是{1,2,3},validTime5秒,則5秒后1出列,隊列變?yōu)?/span>{2,3},再過52出隊,隊列變?yōu)?/span>{3},相應(yīng)的實現(xiàn)代碼如下:

    1. std::vector<Maixu> m_maixus;      /*這個vector長度最多可以達(dá)到100000*/  
    2.   
    3. void Timer()              //Timer函數(shù)每秒運行一次  
    4. {  
    5.     for(std::vector<Maixu>::iterator it = m_maixus.begin();  
    6.       it !=m_maixus.end();++it)  
    7.       {  
    8.           if(it->userlist.empty())  
    9.               continue;  
    10.           if(--it->leftTime == 0)  
    11.           {  
    12.               //時間到  
    13.               it->userlist.pop_front();  
    14.               it->leftTime = it->validTime;  
    15.               //其他操作  
    16.           }  
    17.       }  
    18. }  

    請問上面的實現(xiàn)方式有沒有什么問題?如何改進(jìn)?請?zhí)岢瞿愕母倪M(jìn)方案并重寫上面的代碼段。

    10、(思考題)有服務(wù)器S1、S2…Sn100>n>50),每個服務(wù)器上維護(hù)著連接到該服務(wù)器的用戶的信息,服務(wù)器之間互相連接,當(dāng)用戶信息有更新,必須通知到與它相連的其它服務(wù)器。比如S1上的用戶a改了昵稱,必須通知到S2S3…但由于網(wǎng)絡(luò)的不可靠,更新通知不一定每次都能到達(dá)其它服務(wù)器,假設(shè)S2丟了通知,則S2必須同步上的用戶信息,最差情況下,S2~Sn都可能同時丟了S1的通知而導(dǎo)致同步。

    每個服務(wù)器大概維護(hù)10000個用戶,用戶的信息結(jié)構(gòu)如下,大小平均約100B:(15分)

    1. struct UserInfo  
    2. {  
    3.     int userId;        //用戶id  
    4.     string nickname;   //昵稱  
    5.     string sign;       //簽名  
    6.     //其它用戶信息  
    7. };  

    問題:

    1) S2如何發(fā)現(xiàn)它丟了S1的通知?
    2) 每個服務(wù)器的帶寬限制10M/s,請給出一個可用的同步方案,保證服務(wù)器帶寬不超過限制的情況下完成同步工作;
    3) 顯然如果通知越可靠,同步將會大大減少,請?zhí)岢鲆恍┠芴岣咄ㄖ煽啃缘姆桨覆⒑唵握f明它的實現(xiàn)。

  21. 持續(xù)更新,待續(xù)...2012.09.13;

    由于整理匆忙,有部分題目未注明詳細(xì)來源,若以上任何一題目出自你的空間或者發(fā)的帖子而未有注明,請于本文評論中告知我,一定即刻補上,謝謝。

后記

    經(jīng)過上面這么多筆試面試題目的了解,你自會看到,除了少數(shù)幾個特別難的算法題,大部分都是考察的基礎(chǔ),故面試的關(guān)鍵是你的80%的基礎(chǔ)和編程能力 + 20%的算法能力。
    重復(fù)開頭那句話:如果你有好的筆試面試題,歡迎提供給我統(tǒng)一整理出來對于好的題目提供者,在私信:http://weibo.com/julyweibo,或郵件:zhoulei0907@yahoo.cn,里你盡可以提出你的要求,或貼出你的微博昵稱,或個人主頁,或免費回贈編程藝術(shù)+算法研究的兩個PDF文檔:http://weibo.com/1580904460/yzpYDAuYz,以供他人借閱;如果你對以上任何一題有好的思路或解法,更歡迎不吝分享,show me your answer or code!thank you。
    OK,以上的一切都是我喜歡且我樂意做的,我愿同各位朋友享受這一切。如果你身邊有正在參加校招/筆試/面試的朋友,歡迎把此文轉(zhuǎn)給他/她,舉手之勞,助人無限,謝謝。完。July,二零一二年九月。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多