收集一些top軟體公司經典演算法面試題

2021-06-08 20:20:27 字數 4210 閱讀 5396

微軟有乙個整數陣列,請求出兩兩之差絕對值最小的值,記住,只要得出最小值即可,不需要求出是哪兩個數。

寫乙個函式,檢查字元是否是整數,如果是,返回其整數值。(或者:怎樣只用4行**編寫出乙個從字串到長整形的函式?)

給出乙個函式來輸出乙個字串的所有排列。

請編寫實現malloc()記憶體分配函式功能一樣的**。給出乙個函式來複製兩個字串a和b。字串a的後幾個位元組和字串b的前幾個位元組重疊。

怎樣編寫乙個程式,把乙個有序整數陣列放到二叉樹中?

怎樣從頂部開始逐層列印二叉樹結點資料?請程式設計。

怎樣把乙個鍊錶掉個順序(也就是反序,注意鍊錶的邊界條件並考慮空鍊錶)?

請編寫能直接實現int atoi(const char * pstr)函式功能的**。

程式設計實現兩個正整數的除法,程式設計實現兩個正整數的除法,當然不能用除法操作符。

1

// return x/y.

2

intdiv(constintx,constinty)

3

在排序陣列中,找出給定數字的出現次數,比如 [1, 2, 2, 2, 3] 中2的出現次數是3次。

平面上n個點,每兩個點都確定一條直線,求出斜率最大的那條直線所通過的兩個點(斜率不存在的情況不考慮)。時間效率越高越好。

乙個整數數列,元素取值可能是0~65535中的任意乙個數,相同數值不會重複出現。0是例外,可以反覆出現。請設計乙個演算法,當你從該數列中隨意選取5個數值,判斷這5個數值是否連續相鄰。注意:

設計乙個演算法,找出二叉樹上任意兩個結點的最近共同父結點。複雜度如果是o(n2)則不得分。

一棵排序二叉樹,令 f=(最大值+最小值)/2,設計乙個演算法,找出距離f值最近、大於f值的結點。複雜度如果是o(n2)則不得分。

乙個整數數列,元素取值可能是1~n(n是乙個較大的正整數)中的任意乙個數,相同數值不會重複出現。設計乙個演算法,找出數列中符合條件的數對的個數,滿足數對中兩數的和等於n+1。複雜度最好是o(n),如果是o(n2)則不得分。

google

正整數序列q中的每個元素都至少能被正整數a和b中的乙個整除,現給定a和b,需要計算出q中的前幾項,例如,當a=3,b=5,n=6時,序列為3,5,6,9,10,12 (1)、設計乙個函式void generate(int a,int b,int n ,int * q)計算q的前幾項(2)、設計測試資料來驗證函式程式在各種輸入下的正確性。

有乙個由大小寫組成的字串,現在需要對他進行修改,將其中的所有小寫字母排在答謝字母的前面(大寫或小寫字母之間不要求保持原來次序),如有可能盡量選擇時間和空間效率高的演算法 c語言函式原型void proc(char *str) 也可以採用你自己熟悉的語言。

如何隨機選取1000個關鍵字,給定乙個資料流,其中包含無窮盡的搜尋關鍵字(比如,人們在谷歌搜尋時不斷輸入的關鍵字)。如何才能從這個無窮盡的流中隨機的選取1000個關鍵字?

判斷乙個自然數是否是某個數的平方。說明:當然不能使用開方運算。

給定能隨機生成整數1到5的函式,寫出能隨機生成整數1到7的函式。

1024! 末尾有多少個0?

23、google2009華南地區筆試題。給定乙個集合a=[0,1,3,8](該集合中的元素都是在0,9之間的數字,但未必全部包含),指定任意乙個正整數k,請用a中的元素組成乙個大於k的最小正整數。比如,a=[1,0] k=21 那麼輸出結構應該為100。

用c語言實現乙個revert函式,它的功能是將輸入的字串在原串上倒序後返回。

用c語言實現函式void * memmove(void *dest, const void *src, size_t n)。memmove 函式的功能是拷貝src所指的記憶體內容前n個位元組到dest所指的位址上。分析:由於可以把任何型別的指標賦給void型別的指標,這個函式主要是實現各種資料型別的拷貝。

有一根27厘公尺的細木桿,在第3厘公尺、7厘公尺、11厘公尺、17厘公尺、23厘公尺這五個位置上各有乙隻螞蟻。木桿很細,不能同時通過乙隻螞蟻。開始時,螞蟻的頭朝左還是朝右是任意的,它們只會朝前走或調頭,但不會後退。當任意兩隻螞蟻碰頭時,兩隻螞蟻會同時調頭朝反方向走。假設螞蟻們每秒鐘可以走一厘公尺的距離。編寫程式,求所有螞蟻都離開木桿的最小時間和最大時間。

請定義乙個巨集,比較兩個數a、b的大小,不能使用大於、小於、if語句

兩個數相乘,小數點後位數沒有限制,請寫乙個高精度演算法

有a、b、c、d四個人,要在夜裡過一座橋。他們通過這座橋分別需要耗時1、2、5、10分鐘,只有一支手電,並且同時最多只能兩個人一起過橋。請問,如何安排,能夠在17分鐘內這四個人都過橋?

有12個小球,外形相同,其中乙個小球的質量與其他11個不同,給乙個天平,問如何用3次把這個小球找出來,並且求出這個小球是比其他的輕還是重

在乙個檔案中有 10g 個整數,亂序排列,要求找出中位數。記憶體限制為 2g。只寫出思路即可。

乙個檔案中有40億個整數,每個整數為四個位元組,記憶體為1gb,寫出乙個演算法:求出這個檔案裡的整數裡不包含的乙個整數。雅虎

程式設計實現:把十進位制數(long型)分別以二進位制和十六進製制形式輸出,不能使用printf系列

程式設計實現:找出兩個字串中最大公共子字串,如"abccade","dgcadde"的最大子串為"cad"

有雙向迴圈鍊錶結點定義為:

1

structnode

2

;

有兩個雙向迴圈鍊錶a,b,知道其頭指標為:pheada,pheadb,請寫一函式將兩煉表中data值相同的結點刪除。網易

兩個圓相交,交點是a1,a2。現在過a1點做一直線與兩個圓分別相交另外一點b1,b2。b1b2可以繞著a1點旋轉。問在什麼情況下,b1b2最長

smith夫婦召開宴會,並邀請其他4對夫婦參加宴會。在宴會上,他們彼此握手,並且滿足沒有乙個人同自己握手,沒有兩個人握手一次以上,並且夫妻之間不握手。然後mr. smith問其它客人握手的次數,每個人的答案是不一樣的。求mrs smith握手的次數

有6種不同顏色的球,分別記為1,2,3,4,5,6,每種球有無數個。現在取5個球,求在一下 的條件下:

它們的概率。

有一次數學比賽,共有a,b和c三道題目。所有人都至少解答出一道題目,總共有25人。在沒有答出a的人中,答出b的人數是答出c的人數的兩倍;單單答出a的人,比其他答出a的人總數多1;在所有只有答出一道題目的人當中,答出b和c的人數剛好是一半。求只答出b的人數。

從尾到頭輸出鍊錶,題目:輸入乙個鍊錶的頭結點,從尾到頭反過來輸出每個結點的值。鍊錶結點定義如下:

1

structlistnode

2

;

分析:這是一道很有意思的面試題。該題以及它的變體經常出現在各大公司的面試、筆試題中。其它

金幣概率問題,題目:10個房間裡放著隨機數量的金幣。每個房間只能進入一次,並只能在乙個房間中拿金幣。乙個人採取如下策略:前四個房間只看不拿。隨後的房間只要看到比前四個房間都多的金幣數,就拿。否則就拿最後乙個房間的金幣。程式設計計算這種策略拿到最多金幣的概率。

找出陣列中唯一的重複元素,1-1000放在含有1001個元素的陣列中,只有唯一的乙個元素值重複,其它均只出現一次.每個陣列元素只能訪問一次,設計乙個演算法,將它找出來;不用輔助儲存空間,能否設計乙個演算法實現?

一排n(最大1m)個正整數+1遞增,亂序排列,第乙個不是最小的,把它換成-1,最小數為a且未知求第乙個被-1替換掉的數原來的值,並分析演算法複雜度。

題目:輸入四個點的座標,求證四個點是不是乙個矩形,關鍵點:

矩陣式螺旋輸出

求兩個或n個數的最大公約數和最小公倍數。

最長遞增子串行。題目描述:設l=是n個不同的實數的序列,l的遞增子串行是這樣乙個子串行lin=,其中k1字串原地壓縮,題目描述:"eeeeeaaaff" 壓縮為 "e5a3f2",請程式設計實現。

字串匹配實現,請以倆種方法,回溯與不回溯演算法實現。

乙個含n個元素的整數陣列至少存在乙個重複數,請程式設計實現,在o(n)時間內找出其中任意乙個重複數。

給定乙個存放整數的陣列,重新排列陣列使得陣列左邊為奇數,右邊為偶數。要求:空間複雜度o(1),時間複雜度為o(n)。

收集一些top軟體公司經典演算法面試題

還有多篇優秀的文章,請見列表 微軟有乙個整數陣列,請求出兩兩之差絕對值最小的值,記住,只要得出最小值即可,不需要求出是哪兩個數。寫乙個函式,檢查字元是否是整數,如果是,返回其整數值。或者 怎樣只用4行 編寫出乙個從字串到長整形的函式?給出乙個函式來輸出乙個字串的所有排列。請編寫實現malloc 記憶...

收集論壇上一些經典的話(二)

公尺盧說 態度決定一切 程式匠人說 天份決定速度,勤奮決定高度 俺老漢說 腳走過的地方就是路。聽說程式設計強大的老牛,他的鍵盤f11是磨光,光彩奪目,搞模電的,等萬用表用壞幾個,示波器使用得滾瓜爛熟時,就可以向別人說 熟練了 殼子外面的世界很多彩。殼子裡面的世界很自在。每乙個強人,你看到他瀟灑 驕傲...

收集的一些綠色小軟體

登陸名稱 sunearlier 密碼 aaaaaa 2006 10 20 10 13 2,482,176 ad aware.rar 2006 10 20 10 41 448,727 powerdefragmentergui.rar 2006 10 20 14 25 350,091 u盤 行動硬碟加密...