原创 螞蟻都離開木杆 的一個解法

全新整理:微軟、谷歌、百度等公司經典面試100題 26、有一根27釐米的細木杆,在第3釐米、7釐米、11釐米、17釐米、23釐米這五個位置上各有一隻螞蟻。木杆很細,不能同時通過一隻螞蟻。開始時,螞蟻的頭朝左還是朝右是任意的,它們只會朝前走

原创 二叉樹兩個結點的最低共同父結點

100題第75題 題目:二叉樹的結點定義如下:struct TreeNode{     int m_nvalue;    TreeNode* m_pLeft;    TreeNode* m_pRight;}; 輸入二叉樹中的兩個結點,輸出

原创 輸出1到最大的N位數 的迭代解法

微軟等100題 的第65題  題目:輸入數字n,按順序輸出從1最大的n位10進制數。比如輸入3, 則輸出1、2、3一直到最大的3位數即999。分析:這是一道很有意思的題目。看起來很簡單,其實裏面卻有不少的玄機。 void printN(i

原创 面試題 在從1到n的正數中1出現的次數 的一個解題思路

題目:輸入一個整數n,求從1到n這n個整數的十進制表示中1出現的次數。 例如輸入12,從1到12這些整數中包含1 的數字有1,10,11和12,1一共出現了5次。分析:這是一道廣爲流傳的google面試題。   我們每次判斷整數的個位數字

原创 打印有重複數字的數列的 一個遞歸解法

全新整理:微軟、谷歌、百度等公司經典面試100題   40、用1、2、2、3、4、5這六個數字,寫一個main函數,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"與"5"不能相連.   int n

原创 打印N*N旋轉矩陣 的一個解法

如 輸入 4 打印 1    2    3   4 12 13 14   5 11 16 15   6 10  9   8    7     void printNN(int N){ if(N <= 0) return; if(N ==

原创 對稱字符串的最大長度的一個解法

微軟等數據結構+算法面試100題 中第73題 對策字符串的最大長度。 題目:輸入一個字符串,輸出該字符串中對稱的子字符串的最大長度。比如輸入字符串“google”,由於該字符串裏最長的對稱子字符串是“goog”,因此輸出4。 分析:可能很

原创 數組中超過出現次數超過一半的數字 的一個解法

微軟等數據結構+算法面試100題 第74題   題目:數組中有一個數字出現的次數超過了數組長度的一半,找出這個數字。 分析:這是一道廣爲流傳的面試題,包括百度、微軟和Google在內的多家公司都曾經採用過這個題目。要幾十分鐘的時間裏很

原创 字符串原地壓縮

題目描述:“eeeeeaaaff" 壓縮爲 "e5a3f2",請編程實現。   void compress(char *s) {  char *p = s, *q = s;  char t;  while(*p)  {   t = *p;

原创 將字符串中的字符'*'移到串的前部分 的一個解法

微軟等數據結構+算法面試100題 第88題 2005年11月金山筆試題。編碼完成下面的處理函數。函數將字符串中的字符'*'移到串的前部分, 前面的非'*'字符後移,但不能改變非'*'字符的先後順序,函數返回串中字符'*'的數量。如原始串爲