各大公司經典演算法面試題

2021-06-26 17:53:26 字數 3843 閱讀 1221

微軟

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

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

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

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

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

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

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

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

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

1// return x/y.

2intdiv(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?

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

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

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

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

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

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

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

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

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

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

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

1structnode

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的人數。

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

1structlistnode

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)。

各大公司面試集錦

微軟 有乙個整數陣列,請求出兩兩之差絕對值最小的值,記住,只要得出最小值即可,不需要求出是哪兩個數。排序,兩兩相減 寫乙個函式,檢查字元是否是整數,如果是,返回其整數值。或者 怎樣只用4行 編寫出乙個從字串到長整形的函式?基礎給出乙個函式來輸出乙個字串的所有排列。若要排除重複,先排序,每次找到從後往...

大公司的PHP面試題

1.禁用cookie 後 seesion 還能用嗎?2.抓取遠端到本地,你會用什麼函式?4.你覺得在pv10w的時候,同等配置下,lunix 比win快多少?5.簡述post 和get傳輸的最大容量分別是多少?6.用最少的 寫乙個求3值最大值的函式.回覆 2 樓 2015 01 26 以下是部分答案...

2012各大公司的C 試題

那麼多c 試題,其實最關鍵的是要知道考察的知識點在 哎,應該好好重新看看 effective c 了。網易3道c 試題 題目1 cpp view plain copy class a a void fun1 intgetvalue protected virtual void fun2 privat...