微軟100題總結

2021-06-25 20:24:32 字數 2602 閱讀 9051

一、二元查詢樹變為雙向列表

注意:什麼可以放在if裡邊,什麼必須放在if外邊

二、設計包含min函式的棧

注意:使用assert保證兩個棧有內容

三、連續子陣列的最大和

注意:使用新的貪婪

四、樹的路徑和為某一值

五、查詢最小的5個數

注意map的使用,預設是建立乙個小頂堆,使用greater是建立了乙個大頂堆。求最大的k個,是建立乙個小頂堆。

六、七、判斷兩個鍊錶是否相交

判斷兩個鍊錶最後結點是否相同。

八、九、判斷整數序列是不是二元查詢樹的後續遍歷結果

十、反轉句子中單詞的順序

十一、求二叉樹中結點的最大距離

注意:結點中的左右距離是子樹中的結點到根結點的距離,注意需要處處加上if條件

十二、不用乘除法計算1+2+。。。+n

注意:維護乙個類的n和sum

十三、鍊錶倒數第k個

十四、輸入乙個已經排序過的陣列和乙個數字,輸出乙個即可

十五、轉化為樹的映象

十六、從上往下,從左往右列印樹

十七、在乙個字串中找到第乙個只出現一次的字元

十八、約瑟夫環

十九、非波拿起數列

注意:滾動計算,1,2,3步走台階的數量也可以滾動計算。

二十、將乙個字串轉換為整數

需要注意的地方:1.正負號,2.輸入是否為空或為『\0』,3.是否最後溢位,最大正整數4位元組用0x7fffffff表示,最小負數為(signed int)0x80000000表示.

二十一、輸入兩個整數n和m,從數列1,2,3,...,n中隨意取出幾個數字,使其和等於m,輸出所有可能。

注意:引數cursum,sum,start,end,vec.

二十四、單鏈表逆置合併單鏈表

二十五、在字串中找出連續最長的數字串

二十六、左旋字串

二十七、跳台階問題

二十八、整數二進位制中1的個數

二十九、棧的push\pop序列是否合理 三

十、從1到n的正數中1出現的次數

三十一、

三十二、兩個正整數序列,交換兩個序列中的元素,使兩個數列構成的數字之間差最小

注意:sprintf和qsort

三十三、

三十四三十五

三十九、

四十、一串首尾相連的珠子,有n種顏色,取出其中一段,包含n種顏色,並且長度最短。

四十一、

四十三、樹的遍歷

四十四、

四十五、乙個整數陣列,長為n,將其分為m份,使各份相等,求m的最大值。 四十

六、四對括號有多少種匹配方式? 四十

七、最長遞減子串行 四十

八、在左移陣列中找乙個數

四十九、計數排序或基數排序

五十一、和為n的連續正數序列 五十

二、二元樹的深度

五十三、字串的排列

注意:字串的組合

五十四、調整陣列使奇數字於偶數前面

五十五、實現賦值操作符

五十六、最長公共字串

五十七、兩個棧實現佇列

注意:出隊時,如果兩個棧都為空,則丟擲異常 throw new exception("******");

五十八、從尾到頭輸出鍊錶

五十九、不能被繼承的類

注意:建構函式和析構函式申明為私有,再分別建立呼叫建構函式和析構函式的public的static函式。

六十:在o(1)時間內刪除鍊錶結點

六十一、陣列中兩個只出現一次的數字

六十二、找出兩個鍊錶的第乙個公共結點

注意:快慢指標

六十三、

六十四、尋找醜數

注意:保持三個陣列指標,讓三個指標所指內容分別乘以2,3,5是大於陣列中最大醜數的第乙個。

六十五、輸出1到最大的n位數

注意:判斷溢位

六十六:顛倒棧

注意:顛倒函式,從棧頂取出乙個,將剩餘的顛倒。放入棧底函式,如果棧為空,則放入,不空,則

六十七:撲克牌順子,骰子

六十八:把陣列排成最小的數

六十九、排序陣列左旋後找出最小值

注意:二分查詢

七十一、

七十二、單例模式

七十三、字串中對稱字串的最大長度。

注意:用乙個棧,如果進棧元素與棧頂相同,則對稱,出棧

七十四、二叉樹兩個結點的最低共同父結點

七十六、複雜鍊錶的複製

七十七、鏈表面試題

1>.檢測是否有環

2>.如果有環,返回進入環的第乙個結點

3>.計算環的長度

八十八、*移到前面,非*移到後面

注意:i是遍歷指標,j是指向最後乙個*的指標。

荷蘭國旗:current,begin,end指向,初始化,和變化

八十九、刪除字串中的數字,入「abc123de」處理後成"abcde"

注意:partition

九十、求兩個串中第乙個最長字串

注意:字尾樹和字首樹 九十

二、排隊問題,用歸併來解

九十三、在乙個int陣列裡查詢這樣的數,它大於等於左側所有數,小於等於右側所有數

注意:建立兩個陣列,儲存從開始到當前int陣列中最大的元素,和從後到當前的最小元素。 九十

四、求陣列中長度》=3的最長的等差序列,並輸出。

微軟面試100題

41.求固晶機的晶元查詢程式 晶元盤由數目不詳的大小一樣的晶元組成,晶元並不一定全布滿晶元盤,照相機每次這能匹配乙個晶元,如匹配過,則拾取該晶元,若匹配不過,照相機則按測好的晶元間距移到下乙個位置。求遍歷晶元盤的演算法 求思路。兩個非降序鍊錶的並集,1 2 3 和 2 3 5 並為 1 2 3 5 ...

微軟100題(100)智力題2

1.12個球乙個天平,現知道只有乙個和其它的重量不同,問怎樣稱才能用三次就找到那個球。13個呢?注意此題並未說明那個球的重量是輕是重,所以需要仔細考慮 5分鐘 1小時 2.在9個點上畫10條直線,要求每條直線上至少有三個點?3分鐘 20分鐘 3.在一天的24小時之中,時鐘的時針 分針和秒針完全重合在...

微軟演算法100道題

題目 n個數字 0,1,n 1 形成乙個圓圈,從數字0開始,每次從這個圓圈中刪除第m個數字 第乙個為當前數字本身,第二個為當前數字的下乙個數字 當乙個數字刪除後,從被刪除數字的下乙個繼續刪除第m個數字。求出在這個圓圈中剩下的最後乙個數字。思路 這道題的思路。分析 既然題目有乙個數字圓圈,很自然的想法...