知名公司經(jīng)典算法筆試題
微軟
有一個整數(shù)數(shù)組,請求出兩兩之差絕對值最小的值,記住,只要得出最小值即可,不需要求出是哪兩個數(shù),
知名公司經(jīng)典算法筆試題
。寫一個函數(shù),檢查字符是否是整數(shù),如果是,返回其整數(shù)值。(或者:怎樣只用4行代碼編寫出一個從字符串到長整形的函數(shù)?)
給出一個函數(shù)來輸出一個字符串的所有排列。
請編寫實現(xiàn)malloc()內(nèi)存分配函數(shù)功能一樣的代碼。給出一個函數(shù)來復(fù)制兩個字符串A和B。字符串A的后幾個字節(jié)和字符串B的前幾個字節(jié)重疊。
怎樣編寫一個程序,把一個有序整數(shù)數(shù)組放到二叉樹中?
怎樣從頂部開始逐層打印二叉樹結(jié)點(diǎn)數(shù)據(jù)?請編程。
怎樣把一個鏈表掉個順序(也就是反序,注意鏈表的邊界條件并考慮空鏈表)?
請編寫能直接實現(xiàn)int atoi(const char * pstr)函數(shù)功能的代碼。
編程實現(xiàn)兩個正整數(shù)的除法,編程實現(xiàn)兩個正整數(shù)的除法,當(dāng)然不能用除法操作符。1
// return x/y.
2
int
div
(
const
int
x,
const
int
y)
3
{
4
....
5
}
在排序數(shù)組中,找出給定數(shù)字的出現(xiàn)次數(shù),比如 [1, 2, 2, 2, 3] 中2的出現(xiàn)次數(shù)是3次,
資料共享平臺
《知名公司經(jīng)典算法筆試題》(http://www.msguai.com)。平面上N個點(diǎn),每兩個點(diǎn)都確定一條直線,求出斜率最大的那條直線所通過的兩個點(diǎn)(斜率不存在的情況不考慮)。時間效率越高越好。
一個整數(shù)數(shù)列,元素取值可能是0~65535中的任意一個數(shù),相同數(shù)值不會重復(fù)出現(xiàn)。0是例外,可以反復(fù)出現(xiàn)。請設(shè)計一個算法,當(dāng)你從該數(shù)列中隨意選取5個數(shù)值,判斷這5個數(shù)值是否連續(xù)相鄰。注意:
5個數(shù)值允許是亂序的。比如: 8 7 5 0 6
0可以通配任意數(shù)值。比如:8 7 5 0 6 中的0可以通配成9或者4
0可以多次出現(xiàn)。
復(fù)雜度如果是O(n2)則不得分。
設(shè)計一個算法,找出二叉樹上任意兩個結(jié)點(diǎn)的最近共同父結(jié)點(diǎn)。復(fù)雜度如果是O(n2)則不得分。
一棵排序二叉樹,令 f=(最大值+最小值)/2,設(shè)計一個算法,找出距離f值最近、大于f值的結(jié)點(diǎn)。復(fù)雜度如果是O(n2)則不得分。
一個整數(shù)數(shù)列,元素取值可能是1~N(N是一個較大的正整數(shù))中的任意一個數(shù),相同數(shù)值不會重復(fù)出現(xiàn)。設(shè)計一個算法,找出數(shù)列中符合條件的數(shù)對的個數(shù),滿足數(shù)對中兩數(shù)的和等于N+1。復(fù)雜度最好是O(n),如果是O(n2)則不得分。
正整數(shù)序列Q中的每個元素都至少能被正整數(shù)a和b中的一個整除,現(xiàn)給定a和b,需要計算出Q中的前幾項,例如,當(dāng)a=3,b=5,N=6時,序列為3,5,6,9,10,12 (1)、設(shè)計一個函數(shù)void generate(int a,int b,int N ,int * Q)計算Q的前幾項(2)、設(shè)計測試數(shù)據(jù)來驗證函數(shù)程序在各種輸入下的正確性。
有一個由大小寫組成的字符串,現(xiàn)在需要對他進(jìn)行修改,將其中的.所有小寫字母排在答謝字母的前面(大寫或小寫字母之間不要求保持原來次序),如有可能盡量選擇時間和空間效率高的算法 c語言函數(shù)原型void proc(char *str) 也可以采用你自己熟悉的語言。
如何隨機(jī)選取1000個關(guān)鍵字,給定一個數(shù)據(jù)流,其中包含無窮盡的搜索關(guān)鍵字(比如,人們在谷歌搜索時不斷輸入的關(guān)鍵字)。如何才能從這個無窮盡的流中隨機(jī)的選取1000個關(guān)鍵字?
判斷一個自然數(shù)是否是某個數(shù)的平方。說明:當(dāng)然不能使用開方運(yùn)算。
給定能隨機(jī)生成整數(shù)1到5的函數(shù),寫出能隨機(jī)生成整數(shù)1到7的函數(shù)。
1024! 末尾有多少個0?
有5個海盜,按照等級從5到1排列,最大的海盜有權(quán)提議他們?nèi)绾畏窒?00枚金幣。但其他人要對此表決,如果多數(shù)反對,那他就會被殺死。他應(yīng)該提出怎樣的方案,既讓自己拿到盡可能多的金幣又不會被殺死?(提示:有一個海盜能拿到98%的金幣)
23、Google2009華南地區(qū)筆試題。給定一個集合A=[0,1,3,8](該集合中的元素都是在0,9之間的數(shù)字,但未必全部包含),指定任意一個正整數(shù)K,請用A中的元素組成一個大于K的最小正整數(shù)。比如,A=[1,0] K=21 那么輸出結(jié)構(gòu)應(yīng)該為100。
百度
用C語言實現(xiàn)一個revert函數(shù),它的功能是將輸入的字符串在原串上倒序后返回。
用C語言實現(xiàn)函數(shù)void * memmove(void *dest, const void *src, size_t n)。memmove 函數(shù)的功能是拷貝src所指的內(nèi)存內(nèi)容前n個字節(jié)到dest所指的地址上。分析:由于可以把任何類型的指針賦給void類型的指針,這個函數(shù)主要是實現(xiàn)各種數(shù)據(jù)類型的拷貝。
有一根27厘米的細(xì)木桿,在第3厘米、7厘米、11厘米、17厘米、23厘米這五個位置上各有一只螞蟻。木桿很細(xì),不能同時通過一只螞蟻。開始時,螞蟻的頭朝左還是朝右是任意的,它們只會朝前走或調(diào)頭,但不會后退。當(dāng)任意兩只螞蟻碰頭時,兩只螞蟻會同時調(diào)頭朝反方向走。假設(shè)螞蟻們每秒鐘可以走一厘米的距離。編寫程序,求所有螞蟻都離開木桿的最小時間和最大時間。
騰訊
請定義一個宏,比較兩個數(shù)a、b的大小,不能使用大于、小于、if語句
兩個數(shù)相乘,小數(shù)點(diǎn)后位數(shù)沒有限制,請寫一個高精度算法
有A、B、C、D四個人,要在夜里過一座橋。他們通過這座橋分別需要耗時1、2、5、10分鐘,只有一支手電,并且同時最多只能兩個人一起過橋。請問,如何安排,能夠在17分鐘內(nèi)這四個人都過橋?
有12個小球,外形相同,其中一個小球的質(zhì)量與其他11個不同,給一個天平,問如何用3次把這個小球找出來,并且求出這個小球是比其他的輕還是重
在一個文件中有 10G 個整數(shù),亂序排列,要求找出中位數(shù)。內(nèi)存限制為 2G。只寫出思路即可。
一個文件中有40億個整數(shù),每個整數(shù)為四個字節(jié),內(nèi)存為1GB,寫出一個算法:求出這個文件里的整數(shù)里不包含的一個整數(shù)。
騰訊服務(wù)器每秒有2w個QQ號同時上線,找出5min內(nèi)重新登入的qq號并打印出來。
雅虎
編程實現(xiàn):把十進(jìn)制數(shù)(long型)分別以二進(jìn)制和十六進(jìn)制形式輸出,不能使用printf系列
編程實現(xiàn):找出兩個字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串為"cad"
有雙向循環(huán)鏈表結(jié)點(diǎn)定義為:1
struct
node
2
{
3
int
data;
4
struct
node *front,*next;
5
};
有兩個雙向循環(huán)鏈表A,B,知道其頭指針為:pHeadA,pHeadB,請寫一函數(shù)將兩鏈表中data值相同的結(jié)點(diǎn)刪除。
網(wǎng)易
兩個圓相交,交點(diǎn)是A1,A2。現(xiàn)在過A1點(diǎn)做一直線與兩個圓分別相交另外一點(diǎn)B1,B2。B1B2可以繞著A1點(diǎn)旋轉(zhuǎn)。問在什么情況下,B1B2最長
Smith夫婦召開宴會,并邀請其他4對夫婦參加宴會。在宴會上,他們彼此握手,并且滿足沒有一個人同自己握手,沒有兩個人握手一次以上,并且夫妻之間不握手。然后Mr. Smith問其它客人握手的次數(shù),每個人的答案是不一樣的。求Mrs Smith握手的次數(shù)
【知名公司經(jīng)典算法筆試題】相關(guān)文章:
3.筆試題(算法類)
7.360筆試題目
8.360筆試題目