日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[整理III]微软等数据结构+算法面试100题[最新第61-80题]

發布時間:2023/11/30 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [整理III]微软等数据结构+算法面试100题[最新第61-80题] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

??? 精選微軟等數據結構+算法面試100題[第61-80題]

??????????????????????? ??--最新整理公布

?

?

?

?

昨日,11.19,最新整理了,第61-80題,現在公布。

??????????

可以這么說,絕大部分的面試題,都是這100道題系列的翻版,

此微軟等公司數據結構+算法面試100題系列,是極具代表性的經典面試題。

我曾經暗暗問自己,不知道我是否把面試題基本上都搜集整理盡了,

而當然,對你更重要的是,我自個還提供了答案下載,提供思路,呵。

?

所以,這份資料+答案,在網上是獨一無二的。

閑不多說,接下來,你可以盡情的享用了,朋友。?

?

?

現在首次公布整理的第61-80題(11.19最新整理公布):
---------------------------------------

[整理I]精選微軟等公司數據結構+算法面試100題 [第1-40題]? (博文)
http://blog.csdn.net/v_JULY_v/archive/2010/10/27/5968678.aspx
[整理II]精選微軟等公司數據結構+算法面試100題 [第41-60題]? (博文)
http://blog.csdn.net/v_JULY_v/archive/2010/10/29/5975019.aspx
[匯總I]精選微軟等公司數據結構+算法面試100題[第1-60題匯總](博文)
http://blog.csdn.net/v_JULY_v/archive/2010/11/12/6004660.aspx

?


61.找出數組中兩個只出現一次的數字
題目:一個整型數組里除了兩個數字之外,其他的數字都出現了兩次。
請寫程序找出這兩個只出現一次的數字。要求時間復雜度是O(n),空間復雜度是O(1)。

分析:這是一道很新穎的關于位運算的面試題。

???
62.找出鏈表的第一個公共結點。
題目:兩個單向鏈表,找出它們的第一個公共結點。

鏈表的結點定義為:
struct ListNode
{
? int m_nKey;
? ListNode* m_pNext;
};

分析:這是一道微軟的面試題。
微軟非常喜歡與鏈表相關的題目,因此在微軟的面試題中,鏈表出現的概率相當高。

?

63.在字符串中刪除特定的字符。
題目:輸入兩個字符串,從第一字符串中刪除第二個字符串中所有的字符。

例如,輸入”They are students.”和”aeiou”,則刪除之后的第一個字符串變成”Thy r stdnts.”。

分析:這是一道微軟面試題。在微軟的常見面試題中,與字符串相關的題目占了很大的一部分,
因為寫程序操作字符串能很好的反映我們的編程基本功。


?
64. 尋找丑數。
題目:我們把只包含因子2、3和5的數稱作丑數(Ugly Number)。
例如6、8都是丑數,但14不是,因為它包含因子7。習慣上我們把1當做是第一個丑數。
求按從小到大的順序的第1500個丑數。

分析:這是一道在網絡上廣為流傳的面試題,據說google曾經采用過這道題。

?

65.輸出1到最大的N位數
題目:輸入數字n,按順序輸出從1最大的n位10進制數。
比如輸入3,則輸出1、2、3一直到最大的3位數即999。

分析:這是一道很有意思的題目。看起來很簡單,其實里面卻有不少的玄機。

?

66.顛倒棧。
題目:用遞歸顛倒一個棧。例如輸入棧{1, 2, 3, 4, 5},1在棧頂。
顛倒之后的棧為{5, 4, 3, 2, 1},5處在棧頂。

?

67.倆個閑玩娛樂。
1.撲克牌的順子
從撲克牌中隨機抽5張牌,判斷是不是一個順子,即這5張牌是不是連續的。
2-10為數字本身,A為1,J為11,Q為12,K為13,而大小王可以看成任意數字。 ?

2.n個骰子的點數。
把n個骰子扔在地上,所有骰子朝上一面的點數之和為S。
輸入n,打印出S的所有可能的值出現的概率。

??

68.把數組排成最小的數。
題目:輸入一個正整數數組,將它們連接起來排成一個數,輸出能排出的所有數字中最小的一個。
例如輸入數組{32, 321},則輸出這兩個能排成的最小數字32132。
請給出解決問題的算法,并證明該算法。

分析:這是09年6月份百度的一道面試題,
從這道題我們可以看出百度對應聘者在算法方面有很高的要求。

?

69.旋轉數組中的最小元素。

題目:把一個數組最開始的若干個元素搬到數組的末尾,我們稱之為數組的旋轉。
輸入一個排好序的數組的一個旋轉,輸出旋轉數組的最小元素。
例如數組{3, 4, 5, 1, 2}為{1, 2, 3, 4, 5}的一個旋轉,該數組的最小值為1。

分析:這道題最直觀的解法并不難。從頭到尾遍歷數組一次,就能找出最小的元素,
時間復雜度顯然是O(N)。但這個思路沒有利用輸入數組的特性,我們應該能找到更好的解法。

?

70.給出一個函數來輸出一個字符串的所有排列。

分析:簡單的回溯就可以實現了。當然排列的產生也有很多種算法,去看看組合數學,
還有逆序生成排列和一些不需要遞歸生成排列的方法。

印象中Knuth的<TAOCP>第一卷里面深入講了排列的生成。
這些算法的理解需要一定的數學功底,
也需要一定的靈感,有興趣最好看看。

?

71.數值的整數次方。
題目:實現函數double Power(double base, int exponent),求base的exponent次方。
不需要考慮溢出。

分析:這是一道看起來很簡單的問題。可能有不少的人在看到題目后30秒寫出如下的代碼:
double Power(double base, int exponent)
{
? double result = 1.0;
? for(int i = 1; i <= exponent; ++i)
? result *= base;
? return result;
}

?

?
72.
題目:設計一個類,我們只能生成該類的一個實例。
分析:只能生成一個實例的類是實現了Singleton模式的類型。

??
?
73.對策字符串的最大長度。
題目:輸入一個字符串,輸出該字符串中對稱的子字符串的最大長度。
比如輸入字符串“google”,由于該字符串里最長的對稱子字符串是“goog”,因此輸出4。

分析:可能很多人都寫過判斷一個字符串是不是對稱的函數,這個題目可以看成是該函數的加強版。

?


74.數組中超過出現次數超過一半的數字
題目:數組中有一個數字出現的次數超過了數組長度的一半,找出這個數字。

分析:這是一道廣為流傳的面試題,包括百度、微軟和Google在內的多家公司
都曾經采用過這個題目。要幾十分鐘的時間里很好地解答這道題,除了較好的編程能力之外,
還需要較快的反應和較強的邏輯思維能力。

?

75.二叉樹兩個結點的最低共同父結點
題目:二叉樹的結點定義如下:
struct TreeNode
{
? int m_nvalue;
? TreeNode* m_pLeft;
? TreeNode* m_pRight;
};

輸入二叉樹中的兩個結點,輸出這兩個結點在數中最低的共同父結點。
分析:求數中兩個結點的最低共同結點是面試中經常出現的一個問題。這個問題至少有兩個變種。

?

76.復雜鏈表的復制

題目:有一個復雜鏈表,其結點除了有一個m_pNext指針指向下一個結點外,
還有一個m_pSibling指向鏈表中的任一結點或者NULL。其結點的C++定義如下:
? struct ComplexNode
{
? int m_nValue;
? ComplexNode* m_pNext;
? ComplexNode* m_pSibling;
};

下圖是一個含有5個結點的該類型復雜鏈表。
圖中實線箭頭表示m_pNext指針,虛線箭頭表示m_pSibling指針。
為簡單起見,指向NULL的指針沒有畫出。 ?
請完成函數ComplexNode* Clone(ComplexNode* pHead),以復制一個復雜鏈表。 ?

//圖,接下來,自會補上。July、11.19.
分析:在常見的數據結構上稍加變化,這是一種很新穎的面試題。
要在不到一個小時的時間里解決這種類型的題目,
我們需要較快的反應能力,對數據結構透徹的理解以及扎實的編程功底。

?

77.關于鏈表問題的面試題目如下:
題一、 給定單鏈表,檢測是否有環。
? 使用兩個指針p1,p2從鏈表頭開始遍歷,p1每次前進一步,p2每次前進兩步。
如果p2到達鏈表尾部,說明無環,否則p1、p2必然會在某個時刻相遇(p1==p2),從而檢測到鏈表中有環。

?
題二、 給定兩個單鏈表(head1, head2),檢測兩個鏈表是否有交點,如果有返回第一個交點。
? 如果head1==head2,那么顯然相交,直接返回head1。
? 否則,分別從head1,head2開始遍歷兩個鏈表獲得其長度len1與len2,假設len1>=len2,
那么指針p1由head1開始向后移動len1-len2步,指針p2=head2,
下面p1、p2每次向后前進一步并比較p1p2是否相等,如果相等即返回該結點,
否則說明兩個鏈表沒有交點。
?
題三、 給定單鏈表(head),如果有環的話請返回從頭結點進入環的第一個節點。
? 運用題一,我們可以檢查鏈表中是否有環。

? 如果有環,那么p1p2重合點p必然在環中。從p點斷開環,方法為:p1=p, p2=p->next, ?
p->next=NULL。此時,原單鏈表可以看作兩條單鏈表,一條從head開始,另一條從p2開始,
于是運用題二的方法,我們找到它們的第一個交點即為所求。

題四、只給定單鏈表中某個結點p(并非最后一個結點,即p->next!=NULL)指針,刪除該結點。
? 辦法很簡單,首先是放p中數據,然后將p->next的數據copy入p中,接下來刪除p->next即可。

題五、只給定單鏈表中某個結點p(非空結點),在p前面插入一個結點。
? 辦法與前者類似,首先分配一個結點q,將q插入在p后,
接下來將p中的數據copy入q中,然后再將要插入的數據記錄在p中。

?

78.鏈表和數組的區別在哪里?

分析:主要在基本概念上的理解。
但是最好能考慮的全面一點,現在公司招人的競爭可能就在細節上產生,
誰比較仔細,誰獲勝的機會就大。

?

79.
1.編寫實現鏈表排序的一種算法。說明為什么你會選擇用這樣的方法?
2.編寫實現數組排序的一種算法。說明為什么你會選擇用這樣的方法?
3.請編寫能直接實現strstr()函數功能的代碼。 ?

?


80.阿里巴巴一道筆試題 ?
引自baihacker
問題描述:
12個高矮不同的人,排成兩排,每排必須是從矮到高排列,而且第二排比對應的第一排的人高,問排列方式有多少種?
這個筆試題,很YD,因為把某個遞歸關系隱藏得很深.
? //第81-100題正在整理中。

---------------------------------------------------------------------------------------

整理資源下載地址:
題目系列:
1.[最新整理公布][匯總II]微軟等數據結構+算法面試100題[第1-80題]
http://download.csdn.net/source/2846055
2.[第一部分]精選微軟等公司數據結構+算法經典面試100題[1-40題] ?
http://download.csdn.net/source/2778852
3.[第二部分]精選微軟等公司結構+算法面試100題[前41-60題]:
http://download.csdn.net/source/2811703
4.[第1題-60題匯總]微軟等數據結構+算法面試100題
http://download.csdn.net/source/2826690

答案系列:
5.[最新答案V0.3版]微軟等數據結構+算法面試100題[第21-40題答案]
http://download.csdn.net/source/2832862
6.[答案V0.2版]精選微軟數據結構+算法面試100題[前20題]--修正
http://download.csdn.net/source/2813890
//此份答案是針對最初的V0.1版本,進行的校正與修正。
7.[答案V0.1版]精選微軟數據結構+算法面試100題[前25題]
http://download.csdn.net/source/2796735

更多資源,下載地址:
http://v_july_v.download.csdn.net/
謝謝。

?

?---------------------------------------

??????? 各位,我已經針對本100題,?開了一帖,作為本微軟等100題系列的永久維護地址。

真誠歡迎,各位,前去帖子上,寫下對這100道題中任何一題的思路或想法。

帖子地址:

橫空出世,席卷Csdn:記微軟等100題系列數次被薦[100題維護地址] 11.26日
http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html

?

?

本人July對以上所有任何內容和資料享有版權,轉載請注明出處。
向你的厚道致敬。謝謝。
2010年11月22日。
????

轉載于:https://www.cnblogs.com/v-July-v/archive/2010/11/22/1983723.html

總結

以上是生活随笔為你收集整理的[整理III]微软等数据结构+算法面试100题[最新第61-80题]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。