9月25日,小米大連站筆試題:
1一共有100萬,抽中的2萬,每個月增長4萬,問20個月能抽中的機率爲:?
2 for(int i=0;i<strlen(s);i++){n+=I;}時間複雜度O(n)
3 手機wifi(A)….wifi ap….局域網(B)…..路由器…ADSL(C)…..互聯網…..服務器
斷掉上述ABC哪些點TCP連接會馬上斷掉?
4 12345入棧,出棧結果 21543 31245 43215 12534 可能的爲?(第一個和第三個)
5 x^n+a1x^n-1+…+an-1x+an,最少要作—乘法?題目中a1,a2,an爲常數。
9月26日,百度一二面:
一、給定一數組,輸出知足2a=b(a,b表明數組中的數)的數對,要求時間複雜度儘可能低。
二、搜索引擎多線程中每一個線程佔用多少內存?若是搜索引擎存儲網頁內存佔用太大怎麼解決?
三、有不少url,例如*.baidu.com,*.sina.com ......
如今給你一個sports.sina.com 快速匹配出是*.sina.com。點評:老題,此前blog內曾整理過。
四、找出字符串的編輯距離,即把一個字符串s1最少通過多少步操做變成編程字符串s2,操做有三種,添加一個字符,刪除一個字符,修改一個字符(只要聽過編輯距離,知道往動態規劃上想,很快就能夠找到解法)。
點評:請看連接:http://blog.csdn.net/Lost_Painting/article/details/6457334。
五、編程實現memcopy,注意考慮目標內存空間和源空間重疊的時候。
六、實現簡單的一個查找二叉樹的深度的函數。
9月26日晚,優酷土豆筆試題一道:
優酷是一家視頻網站,天天有上億的視頻被觀看,如今公司要請研發人員找出最熱門的視頻。
該問題的輸入能夠簡化爲一個字符串文件,每一行都表示一個視頻id,而後要找出出現次數最多的前100個視頻id,將其輸出,同時輸出該視頻的出現次數。
1.假設天天的視頻播放次數爲3億次,被觀看的視頻數量爲一百萬個,每一個視頻ID的長度爲20字節,限定使用的內存爲1G。請簡述作法,再寫代碼。
2.假設每月的視頻播放次數爲100億次,被觀看的視頻數量爲1億,每一個視頻ID的長度爲20字節,一臺機器被限定使用的內存爲1G。
點評:有關海量數據處理的題目,請到此文中找方法(不管題目形式怎麼變,基本方法不變,固然,最最經常使用的方法是:分而治之/Hash映射 + Hash統計 + 堆/快速/歸併排序):http://blog.csdn.net/v_july_v/article/details/7382693。注:上題第二問文件太大,則可如模1000,把整個大文件映射爲1000個小文件再處理 ....
9月26日,baidu面試題:
1.進程和線程的區別
2.一個有序數組(從小到大排列),數組中的數據有正有負,求這個數組中的最小絕對值
3.鏈表倒數第n個元素
4.有一個函數fun能返回0和1兩個值,返回0和1的機率都是1/2,問怎麼利用這個函數獲得另外一個函數fun2,使fun2也只能返回0和1,且返回0的機率爲1/4,返回1的機率爲3/4。(若是返回0的機率爲0.3而返回1的機率爲0.7呢)
5.有8個球,其中有7個球的質量相同,另外一個與其餘球的質量不一樣(且不知道是比其餘球重仍是輕),請問在最壞的狀況下,最少須要多少次就能找出這個不一樣質量的球
6.數據庫索引
7.有一個數組a,設有一個值n。在數組中找到兩個元素a[i]和a[j],使得a[i]+a[j]等於n,求出全部知足以上條件的i和j。
8.1萬個元素的數組,90%的元素都是1到100的數,10%的元素是101--10000的數,如何高效排序。
小米的web開發筆試題:
一場星際爭霸比賽,共8我的,每一個人的實力用分數表示,要分紅兩隊,如何保證明力最平均?給定一個浮點數的序列,F1,F2,……,Fn(1<=n<=1000),定義P(s,e)爲子序列Fi(s<=i<=e)的積,求P的最大值。
9月27日,趨勢科技面試題:
馬路口,30分鐘內看到汽車的機率是95%,那麼在10分鐘內看不到汽車的機率是?
9月27日晚,IGT筆試題:
給定一個字符串裏面只有"R" "G" "B" 三個字符,請排序,最終結果的順序是R在前 G中 B在後。
要求:空間複雜度是O(1),且只能遍歷一次字符串。
點評:本質是荷蘭國旗問題,相似快排中partition過程,具體思路路分析及代碼能夠參考此文第8節:http://blog.csdn.net/v_july_v/article/details/6211155。
9月27日,人人兩面:
一面
1 實現atoi
2 單鏈表變形 如 1 2 3 4 5 變爲 1 3 5 4 2 如1 2 3 4 變爲 1 3 4 2
(就是拆分鏈表 把偶數爲反過來接在奇數位後面)
二面
1 二叉樹查找不嚴格小於一個值的最大值(返回節點)。
2 有序數組裏二分查找一個數(若是有相同的找最後一次出現的)。
3 等價於n*n的矩陣,填寫0,1,要求每行每列的都有偶數個1 (沒有1也是偶數個),問有多少種方法。
評論:開始覺得是算法題,想了狂搜,遞推(dp,能夠用xor表示一行的列狀態,累加),分治,(拆兩半,而後上半段下半段的列有相同的奇偶性)。後來,本身算了幾個發現n = 1 n = 2 n = 3 的結果,他告訴了我n = 4是多少,而後發現f(n) = 2^((n - 1) ^2) 。最後我給出了一個巧妙的證實。而後發現若是是m*n的矩陣也是相似的答案,不侷限於方陣。此外,題目具體描述能夠看看這裏:http://blog.himdd.com/?p=2480。
9月27日,小米兩面:
一面:
除了聊研究,就一道題
1 數組裏找到和最接近於0的兩個值。
二面:
1 行列有序的矩陣查找一個數
2 直方圖最大矩形。點評:這裏有此題的具體表述及一份答案:http://blog.csdn.net/xybsos/article/details/8049048。
3 next_permutation
4 字符串匹配 含有* ? (寫代碼)
5 實現strcpy memmove (必須寫代碼)
//void * memmove ( void * destination, const void * source, size_t num );)
//是<string.h>的標準函數,其做用是把從source開始的num個字符拷貝到destination。
//最簡單的方法是直接複製,可是因爲它們可能存在內存的重疊區,所以可能覆蓋了原有數據。
//好比當source+count>=dest&&source<dest時,dest可能覆蓋了原有source的數據。
//解決辦法是從後往前拷貝。
//對於其它狀況,則從前日後拷貝。
void* memmove(void* dest, void* source, size_t count)
{
void* ret = dest;
if (dest <= source || dest >= (source + count))
{
//正向拷貝
//copy from lower addresses to higher addresses
while (count --)
*dest++ = *source++;
}
else
{
//反向拷貝
//copy from higher addresses to lower addresses
dest += count - 1;
source += count - 1;
while (count--)
*dest-- = *source--;
}
return ret;
}
更多,還能夠參見此文第三節節末:http://blog.csdn.net/v_july_v/article/details/6417600,或此文:http://www.360doc.com/content/11/0317/09/6329704_101869559.shtml。
6 讀數 (千萬億,百萬億……)變爲數字 (說思路便可,字符串查找,填寫各個權值的字段,而後判斷是否合法,讀前面那些×權值,累加)。
9月27日,Hulu 2013北京地區校招筆試題
填空題:
一、中序遍歷二叉樹,結果爲ABCDEFGH,後序遍歷結果爲ABEDCHGF,那麼前序遍歷結果爲?
二、對字符串HELL0_HULU中的字符進行二進制編碼,使得字符串的編碼長度儘量短,最短長度爲?
三、對長度12的有序數組進行二分查找,目標等機率出如今數組的每一個位置上,則平均比較次數爲?
四、一副撲克(去王),每一個人隨機的摸兩張,則至少須要多少人摸牌,才能保證有兩我的抽到一樣的花色。
五、x個小球中有惟一一個球較輕,用天平秤最少稱量y次能找出這個較輕的球,寫出y和x的函數表達式y=f(x)
六、3的方冪及不相等的3的方冪的和排列成遞增序列1,3,4,9,10,12,13……,寫出數列第300項
七、無向圖G有20條邊,有4個度爲4的頂點,6個度爲3的頂點,其他頂點度小於3,則G有多少個頂點
八、桶中有M個白球,小明每分鐘從桶中隨機取出一個球,塗成紅色(不管白或紅都塗紅)再放回,問小明將桶中球所有塗紅的指望時間是?
九、煤礦有3000噸煤要拿到市場上賣,有一輛火車能夠用來運煤,火車最多能裝1000噸煤,且火車自己須要燒煤作動力,每走1千米消耗1噸煤,如何運煤才能使得運到市場的煤最多,最可能是多少?
十、1,2,3,4…..n,n個數進棧,有多少種出棧順序,寫出遞推公式(寫出通項公式不得分)
十一、宇宙飛船有100,000位的存儲空間,其中有一位有故障,現有一種Agent能夠用來檢測故障,每一個Agent能夠同時測試任意個位數,若都沒有故障,則返回OK,如有一位有故障,則失去響應。若是有無限多個Agent可供使用,每一個Agent進行一次檢測須要耗費1小時,如今有2個小時時間去找出故障位,問最少使用多少個Agent就能找出故障。
(總共12道填空題,還有一道太複雜,題目很長,還有示意圖,這裏沒有記錄下來)
大題:
一、n個數,找出其中最小的k個數,寫出代碼,要求最壞狀況下的時間複雜度不能高於O(n logk)
二、寫程序輸出8皇后問題的全部排列,要求使用非遞歸的深度優先遍歷
三、有n個做業,a1,a2…..an,做業aj的處理時間爲tj,產生的效益爲pj,最後完成期限爲dj,做業一旦被調度則不能中斷,若是做業aj在dj前完成,則得到效益pj,不然無效益。給出最大化效益的做業調度算法。點評:參考答案請看這個連接:http://www.51nod.com/question/index.html#!questionId=645。
有道的一個筆試題,1-9,9個數組成三個三位數,且都是徹底平方數(三個三位數 佔據 9個數)求解法。
點評@林晚楓&歸雲見鴻:
(a*10+b)(a*10+b)
100a^2+20ab+b^2
a 屬於 [1,2,3]
a=3,b=1 31 961,
a=2,b=3 23 529 400+40b+b^2
25 625
27 729
28 784
29 841
a=1,b=3 13 169 100+20b+b^2
14 196
16 256
17 289
18 324
19 361
=>最終惟一解 529 784 361
具體代碼以下(3個for循環,而後hash):
9月28日,大衆點評北京筆試題目:
1.一個是跳臺階問題,能夠1次一級,1次兩級,1次三級,求N級的跳法一共多少種?
點評:老題,參考答案請見:http://blog.csdn.net/v_july_v/article/details/6879101。
2.一個文件有N個單詞,每行一個,其中一個單詞出現的次數大於N/2,怎麼樣才能快速找出這個單詞?
點評:仍是老題,參見:http://blog.csdn.net/v_july_v/article/details/6890054。
大衆點評前面還有30道邏輯題,15道文字推理,15道數學推理,一共只給20min。
9月28日,網易筆試題:
一、英雄升級,從0級升到1級,機率100%。
從1級升到2級,有1/3的可能成功;1/3的可能停留原級;1/3的可能降低到0級;
從2級升到3級,有1/9的可能成功;4/9的可能停留原級;4/9的可能降低到1級。
每次升級要花費一個寶石,無論成功仍是停留仍是降級。
求英雄從0級升到3級平均花費的寶石數目。
點評:題目的意思是,從第n級升級到第n+1級成功的機率是(1/3)^n(指數),停留原級和降級的機率同樣,都爲[1-(1/3)^n]/2)。
二、將一個很長的字符串,分割成一段一段的子字符串,子字符串都是迴文字符串。
有迴文字符串就輸出最長的,沒有迴文就輸出一個一個的字符。
例如:
habbafgh
輸出h,abba,f,g,h。
點評:編程藝術第十五章有這個迴文問題的解答,參見:http://blog.csdn.net/v_july_v/article/details/6712171。此外,通常的人會想到用後綴數組來解決這個問題,其他更多的方法請見:http://dsqiu.iteye.com/blog/1688736。最後,還能夠看下這個連接:http://www.51nod.com/question/index.html#!questionId=672。
10月9日,騰訊一面試題:
有一個log文件,裏面記錄的格式爲:
QQ號: 時間: flag:
如123456 14:00:00 0
123457 14:00:01 1
其中flag=0表示登陸 flag=1表示退出
問:統計一天平均在線的QQ數。
點評:相似於此文中:http://blog.csdn.net/hackbuteer1/article/details/7348968,第8題後的騰訊面試題,讀者能夠參看之。
10月9日,騰訊面試題:
1.有一億個數,輸入一個數,找出與它編輯距離在3之內的書,好比輸入6(0110),找出0010等數,數是32位的。
2.每一個城市的IP段是固定的,新來一個IP,找出它是哪一個城市的,設計一個後臺系統。
10月9日,YY筆試題:
1 輸出一個字符串中沒有重複的字符。如「baaca」輸出「bac」。
2 對於一個多叉樹,設計TreeNode節點和函數,返回先序遍歷狀況下的下一個節點。
函數定義爲TreeNode* NextNode(TreeNode* node)
3 分割字符串。
對於一個字符串,根據分隔符seperator,把字符串分割,若是存在多個分隔符連在一塊兒,則當作一個分隔符。若是分隔符出如今" "符號之間,則不須要分割" "之間的字符。
好比a++abc ,分隔符爲+,輸出a abc
a+"hu+" 輸出a hu+
a++"HU+JI 輸出a "HU JI。
請根據上述需求完成函數:void spiltString(string aString,char aSeperator)。
10月9日,趕集網筆試
10月9日,阿里巴巴2013校園招聘全套筆試題(注:下圖中所標答案不表明標準答案,有問題,歡迎留言評論)
上述第15題,填空:lower+ (upper-lower)/2
lower mid upper
0 6 12
7 9 12
7 7 8
8 8 8
比較4次
上述第16題,解答以下圖所示:
上述第17題,解答以下圖所示:
1八、甲包8個紅球 2個藍球,乙包2個紅球 8個藍球。拋硬幣決定從哪一個包取球,取了11次,7紅4藍。注,每次取後還放進去,只拋一次硬幣。問選的是甲包的機率?
點評:
貝葉斯公式 + 全機率公式做答(參看連接:http://www.doc88.com/p-132711202556.html)。具體解答以下圖所示:
注:上述第15~18的解答所有來自讀者Lei Lei來信給出的解答,他的博客地址是:http://blog.csdn.net/nwpulei,特此感謝。有任何問題,歡迎隨時討論&指正,同時,更歡迎其餘朋友也一塊兒來作這些題目(你的答案一經選用,我能夠根據你的要求,貼出你的我的主頁或微博地址或博客地址)。
1九、已知一個n個元素的數組,第i個元素在排序後的位置在[i-k,i+k]區間,k<<n .讓你設計一個算法對數組排序,要求時間複雜度最小,O (nlogn)不得分,O(nk)得2分,以下圖所示:
讀者twtsa毛遂自薦,這是他給出的上述第19~20題的我的題解:http://blog.csdn.net/twtsa/article/details/8055143。有任何問題,歡迎隨時討論&指正。
10月10日,暴風影音筆試:
都是很是基礎的題目,這是其中一道:一個整數轉換成二進制後,問裏面有多少個1。
10月10日,2013亞馬遜在線筆試題目
題目及參考答案請見這:http://blog.chinaunix.net/uid-26750075-id-3370694.html。(感謝讀者freeloki來信提供)。
10月10日人人網面試題
第一面:
一、(1)++i 和 i++,那個效率高?
(2)++++i,i++++,哪一個是合法的?
(3)實現int型的++i 和 i++操做。
二、一段程序,求輸出。(考察靜態變量和模版類)
int g = 0;
template<typename T>
class B
{
public:
int static fun()
{
static int value = ++g;
return value;
}
};
int main()
{
cout << B<int>::fun() << endl;
cout << B<char>::fun() << endl;
cout << B<float>::fun() << endl;
cout << B<int>::fun() << endl;
cout << B<long>::fun() << endl;
return 0;
}
三、(1)實現二進制轉十進制。
(2)若是有下面這種能直接求二進制轉十進制的代碼,是怎麼實現的?
binary<1>::value; // 結果爲1
binary<11>::value; // 結果爲3
四、volatile、explicit、mutable表示的含義。
五、求整形數組的一個子數組,使得該子數組全部元素的和的絕對值最大。
六、(1)寫求單鏈表是否有環的算法。
(2)若是有環,如何找出環的第一個結點。
七、實現單例模式。
二面:
一、一個文本,一萬行,每行一個詞,統計出現頻率最高的前10個詞(詞的平均長度爲Len)。並分析時間複雜度。
二、求數組中最長遞增子序列。
10月10日,網易2013校園招聘全套筆試題:
10月10日,網易,數據挖掘工程師:
1,簡述你對數據與處理的認識;
2,簡述你對中文分詞的理解,說明主要難點和經常使用算法;
3,常見的分類算法有哪些;
4,簡述K-MEANS算法;
5,設計一個智能的商品推薦系統;
6,簡述你對觀點挖掘的認識。
點評:其它題目與上述第56題第一部分(http://blog.csdn.net/hackbuteer1/article/details/8060917)所述相同。
10月11日,阿里巴巴筆試部分題目:
1. 甲乙兩我的上街,撿到一張10塊錢的購物卡,兩人就想出一個辦法來分配這張卡。兩個分別將本身出的價格寫在紙上,而後看誰出的價高就給誰,而且那個出價高的人要把出的錢給對方。如今甲有6塊錢,乙有8塊錢。問誰得到的錢多。(多選)
A 甲多 B 乙多 C 同樣多 D 有可能出現有人賠錢的狀況
2. 有一個怪物流落到一個荒島上,荒島上有n條鱷魚。每條鱷魚都有實力單獨吃掉怪物。可是吃掉怪物是有風險的,會形成體力值降低,而後會有可能被掉其餘鱷魚吃。問,最後那個怪物是危險的仍是安全的?
3. 算法題:
A[i]是一個有序遞增數組,其中全部的數字都不相等,請設計一種算法,求出其中全部的A[i]=i的數字並分析時間複雜度,不分析複雜度不得分。
4. 大題
你在瀏覽器中輸入網址:http://blog.csdn.net/v_JULY_v,按下回車鍵後,會發生什麼事情,請一一描述(20分)。包括瀏覽器,網絡,服務器等等發生的事情,及各項關鍵技術。
點評:這樣的題考過不少次,參考答案以下圖所示:
10月11日,華爲一面:
一、將一個普通的二叉樹轉換爲二叉排序樹?
二、隨便寫一個排序算法。
10月11日,完美筆試題:
1.爲何析構函數應該設爲虛函數
2.大數字乘法問題
3.雙向鏈表模擬隊列操做push pop find
4.求 a/3 不能用除法
5.多核下多線程同步問題,使用鎖應該注意什麼
6.三個寶箱有一個裏面有珠寶,如今拿第一寶箱,而後打開第二個寶箱後發現沒有珠寶,用機率論原理解釋爲何如今拿第三個寶箱,裏面有珠寶的機率比拿第一個寶箱高。
10月11日,搜狐暢遊旗下第七大道筆試題:
算法題
1.一個數是不是另外一個數的平方。
2.N進制換成M進制
3.設計一個大數乘法
綜合題
1.N個數,出棧有幾種狀況
2.進程死鎖緣由及條件.
騰迅一個很是有意思的面試題:
N個數組,每一個數組中的元素都是遞增的順序,如今要找出這N個數組中的公共元素部分,如何作? 注:不能用額外輔助空間。
點評:
討論了半天:http://weibo.com/1580904460/z08mT0aFj,沒個好的結果,發現仍是上午想到的N個指針逐步向後移動,輔以二分,而後N路歸併更靠譜,相似這裏的第5題所述的辦法:http://www.cnblogs.com/BeyondAnyTime/archive/2012/07/17/2593224.html。若讀者有更好的思路,歡迎賜教。
10月12日,迅雷2013校園招聘「廣州站」C++方向全套筆試題
(注:若照片看不清楚,請右鍵點擊「圖片另存爲」到桌面,而後再打開圖片,即可以隨意放大縮小圖片拉)
10月12日晚,微策略北京站筆試題(根據讀者回憶整理):
一、魔術定義:整數N以基數B表示,如21以基數3表示爲210,那麼21是基數3的一個魔術,210三個位的值都不同。設計函數,輸入參數N和B(B介於2到10之間),返回是否爲魔術。
二、斐波那契數列的變形,一個賊每次上樓梯1或者2,一個27層的樓梯須要多少種方法,記住賊不能通過5,8,13層,不然會被抓住。點評:仍是能夠用斐波那契來推算,f(n) = f(n-1) + f(n-2),只是f(5) f(8) f(13) = 0,http://www.51nod.com/answer/index.html#!answerId=596。
三、給定一棵樹根節點,每一個節點裏面的值都不相同,查找iKEY的節點,並使用一個給定的節點將查找到的節點替換掉。節點內有兩個孩子節點和一個父節點。
四、字符串數組S,全是0和1表示的,字符串都是n位的,且1的個數小於等於l,返回index的字符串。(這個比較奇怪,若是S中字符串都是符合1的個數小於等於l,則直接能夠獲得index的字符串啊,難道是要先求這個字符串數組?那就比較麻煩了)
五、降序排列的數組,找到其中兩個不一樣的值,其乘積最接近一個給定的值M,感受和加法求和很相似。
六、序列123...N,N介於3和9之間,在其中加入+-或者空格,使其和爲0,
如123456 1-2 3-4 5+6 7 等價於1-23-45+67=0。請問,如何得到全部組合?
10月12日,大衆點評筆試一題:
讀者私信,昨日(12號)美團的筆試題:
一、一副撲克52張(去了大小王),洗牌,求最頂一張和最底一張是A的機率
二、知道兩個數的異或以及這兩個數的和,問能夠肯定這對數嗎?爲何?給出推理過程
三、A、B兩個文件各存50億個商品名稱,每一個50個字符,求這兩個文件中相同名稱的商品名,內存限制4G(看過您的《教你如何迅速秒殺掉:99%的海量數據處理面試題》中的第6題,無壓力,很是感謝)
四、給一個二叉樹的後序遍歷和中序遍歷,畫出這顆二叉樹,寫出前序遍歷結果,並給出推理過程
五、一個有序數組array,給一個數x,可重複,求這個數在array中出現的區間,算法思路和代碼實現
六、一個映射文件中存了ip地址區間和城市名稱,形如:
10.0.0.1 10.0.1.27 北京
10.0.2.1 10.0.2.27 北京
201.0.1.12 201.0.2.124 上海
給你一個ip地址,獲取城市名稱,要求:1)給出算法思想 2)代碼實現。
10月12日晚,360 2013校招部分筆試題(注:圖中所標答案不表明正確答案):
int main()
{
fork()||fork();
return 0;
}
問,上述程序建立了幾個進程?
編程題、傳教士人數m,野人c,m≥c,開始都在岸左邊,
①船隻能載兩人,傳教士和野人都會划船,固然必須有人划船
②兩岸邊保證野人人數不能大於傳教士人數
把全部人都送過河,設計一方案,要求編程實現。
點評:
讀者huangxy10於本文評論下第169樓提供了一種解法:http://blog.csdn.net/huangxy10/article/details/8066408。再附一個討論帖子:http://topic.csdn.net/u/20121012/22/70226713-A669-4F03-80B7-BFFF12A330EB.html。
10月13日,百度2013校招北京站筆試題:
1、簡答題(30分)
一、用簡單語句描述數據庫操做的步驟
二、寫出TCP/IP的四層結構
三、什麼是MVC結構,並描述各層結構的做用
2、算法與程序設計題(40分)
一、字母a-z,數字0-9,現須要其中任意3個做爲密碼,請輸出全部可能組合。(僞碼\C\C++\JAVA)(10分)
點評:如本文評論下第198樓所述,即從26+10=36個不一樣字符中選取3個字符的組合,用遞歸及非遞歸兩種方法,能夠參照如下連接:
http://blog.csdn.net/wumuzi520/article/details/8087501(從n個數中選取m個數的組合數),主要代碼以下:
//copyright @wumuzi520
//從n個數中選取m個數的組合數
void Combination(int arr[], int nLen, int m, int out[], int outLen)
{
if(m == 0)
{
for (int j = 0; j < outLen; j++)
{
cout << out[j] << "\t";
}
cout << endl;
return;
}
for (int i = nLen; i >= m; --i) //從後往前依次選定一個
{
out[m-1] = arr[i-1]; //選定一個後
Combination(arr,i-1,m-1,out,outLen); // 從前i-1個裏面選取m-1個進行遞歸
}
}
void PrintCombination(int arr[], int nLen, int m)
{
int* out = new int[m];
Combination(arr,nLen,m,out,m);
delete [] out;
}
二、實現字符串反轉函數(10分)
三、給定字符函數a、插入 b、刪除 c、替換
例如字符串A=acegf,字符串B=adef,最少須要2步操做將A轉換爲B,
即第一步將c替換爲d,第二步將g刪除;
(1)請問將字符串A=gumbo轉換爲字符串B=gambol,最少須要幾步操做,列出如何操做(2分)
(2)任意字符串A和字符串B,如何計算最小操做次數,計算思路,並給出遞歸公式(3分)
(3)實現代碼(注意代碼風格與效率)(15分)
點評:請參看上文第38題第4小題:9月26日,百度一二面試題。
3、系統設計題(30分)
RSA SecurID安全系統
應用場景:這是一種用戶登陸驗證手段,例如銀行登陸系統,這個設備顯示6位數字,每60秒變一次,再通過服務器認證,經過則容許登陸。問How to design this system?
1)系統設計思路?服務器端爲什麼能有效認證動態密碼的正確性?
2)若是是千萬量級永固,給出系統設計圖示或說明,要求子功能模塊劃分清晰,給出關鍵的數據結構或數據庫表結構。
考慮用戶量級的影響和擴展性,用戶密碼的隨機性等,若是設計系統以支持這幾個因素.
3)系統算法升級時,服務器端和設備端可能都要有所修改,如何設計系統,可以使得升級過程(包括可能的設備替換或重設)儘可能平滑?
10月13日,百度移動開發筆試題
1、 一、什麼是RISC;
二、經過後序、中xu求前序
三、重寫與重載的區別
2、
一、反轉鏈表
二、判斷兩個數組中是否有相同的數字
三、1000瓶水中找 出有毒的那瓶,毒性一週後發做,一週內最少須要多少隻老鼠
3、系統設計 email客戶端,支持多帳戶和pop3等協議
一、請寫出可能的至少5個用例;
二、使用sqlite存儲賬戶、已收信息、已發信息、附件、草稿,請設計合理的表結構
三、pop3等協議等接口已完成,請給出email客戶端的模塊設計圖。
10月13日,人搜2013 校招北京站部分筆試題(讀者回憶+照片):
1,二重歌德巴赫猜測
全部大於等於6的偶數均可以表示成兩個(奇)素數之和。
給定1-10000,找到能夠用兩個素數之和表示每個偶數的兩個素數,而後輸出這兩個素數,若是有多對,則只須要輸出其中之一對便可。
要求:複雜度較低,代碼可運行。
2,城市遍歷
某人家住北京,想去青海玩,可能會通過許多城市,
現已知地圖上的城市鏈接,求通過M個城市到達青海的路線種類。
城市能夠屢次到達的,好比去了天津又回到北京,再去天津,即爲3次。北京出發不算1次。
輸入:
N M S
N爲城市總數,北京爲0,青海爲N-1;
M爲通過的城市數目;
S爲以後有S行
i j
表示第i個城市能夠去第j個城市,是有方向的。
輸出:
N
表示路徑種類。
3,分佈式系統設計
有1000億個URL,其中大約有5億個site。天天的更新大約2%-5%。設計一個系統來解決存儲和計算下面三個問題。可用分佈式系統。
URL:http///site[port]*(key==?;key==?)
site:html