一、二元查詢樹變為雙向列表
注意:什麼可以放在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個數字。求出在這個圓圈中剩下的最後乙個數字。思路 這道題的思路。分析 既然題目有乙個數字圓圈,很自然的想法...