一面:
1、有兩個有序鍊錶(數值有序)。乙個鍊錶是遞增的,乙個鍊錶是遞減的。現在將兩個鍊錶合併成乙個鍊錶,並保證最後的鍊錶是遞增的。
2、有一顆二叉樹,結點的結構體如下:
strcut node
node *;
如何用新的結構體表示的結點表示出二叉樹的結構。即同一層的結點,如何從左到右鏈結起來。
如果允許用多餘的空間,怎麼做?不能用多餘的空間又怎麼做?(這道也是優酷的面試題)
二面:1、檢索二叉樹(有序二叉樹,左孩子的值都比根的值小,右孩子的值都比根的值大),找乙個x,判斷二叉樹上是否有該結點。如果有,則刪除。(寫**)
三面:1、(智力題)乙個監獄裡,有100名犯人,1名監獄長。監獄長有乙個房間,房間裡有一盞燈。監獄長每天可隨機從100名犯人之間抽乙個犯人(可重複)去這個房間,犯人可開燈、關燈,也可以什麼都不做。犯人之間不能通訊。問題:在監獄長選第乙個人進房間之前,100個人需要商量乙個對策,保證:在監獄長選犯人的過程中,其中乙個人進房間後看了一下,跟監獄長說,這100個犯人都至少進來過一次了。(監獄長選犯人的次數是無限的)
2、現在有乙個陣列,陣列中的數都是自然數(0,1,2,3...),現在這個陣列是有序的,要找到第乙個不存在的數,如,(1234),則第乙個不存在的是0.如:(0134),第乙個不存在的是2.現在要找到第乙個不存在的數,時間複雜度小於o(n).
如果這個陣列是無序的,時間複雜度小於等於o(n),該怎麼做?
微軟面試題
題目 小明和小強都是張老師的學生,張老師的生日是m月n日,2人都知道張老師的生日是下列10組中的一天,張老師把m值告訴了小明,把n值告訴了小強,張老師問他們知道他的生日是那一天嗎?3月4日 3月5日 3月8日 6月4日 6月7日 9月1日 9月5日 12月1日 12月2日 12月8日 小明說 如果我...
微軟面試題
fly.c4 推薦您必看!六.演算法題 說明 這些題就不是什麼花樣了,考的是你的基礎知識怎麼樣。再聰明而沒有實學的人都將會被這些題所淘汰。1.鍊錶和陣列的區別在 2.編寫實現鍊錶排序的一種演算法。說明為什麼你會選擇用這樣的方法?3.編寫實現陣列排序的一種演算法。說明為什麼你會選擇用這樣的方法?4.請...
微軟面試題
1.燒一根不均勻的繩,從頭燒到尾總共需要1個小時。現在有若干條材質相同的繩子,問如何用燒繩的方法來計時乙個小時十五分鐘呢?答 點燃繩子a的兩端,和繩子b的 一端,當a燒完時,b餘下的可以燒半個小時 這時把b的另一端點燃,並開始計時,等b燒完時可確定15分鐘,然後再點燃繩子c 兩端 燒完總時間為1小時...