原创 面試OR筆試12——二叉樹轉化爲鏈表

1 題目及要求 1.1 題目描述 把一個二叉樹轉化爲鏈表(單雙向都可以)。   2 解答 2.1 代碼 #include <iostream> using namespace std; // 樹的結構 struct TreeNode

原创 面試OR筆試19——醜數

1 題目及要求 1.1 題目描述 只包含因子2、3和5的數稱爲醜數(Ugly Number),習慣上我們把1當做第一個醜數。求按從小到大順序的第n(n > 0)個醜數。   2 解答 2.1 代碼 bool isUgly(int n){

原创 面試OR筆試22——數組中只出現一次的數字

1 題目及要求 1.1 題目描述 一個整數數組中除了兩個數字只出現一次之外,其他的數字都出現了兩次。請寫程序找出這兩個只出現一次的數字。要求時間複雜度是O(n),空間複雜度是O(1)。 例如輸入數組{2, 4, 3, 6, 3, 2,5,

原创 面試OR筆試16——1的個數

1 題目及要求 1.1 題目描述 求從1到正整數n這n整數的十進制表示中1出現的次數。例如輸入12, 從1到12包含1的數字有1,10,11,12共出現了5次。   2 解答 2.1 代碼 int numberOf1(int n){ i

原创 面試OR筆試13——字母數字排序

1 題目及要求 1.1 題目描述 字母數字排序,把一個只含有字母和數字的字符串排序,要求字母和數字各按照ASCII碼錶排序,且字母在數字之前。   2 解答 2.1 代碼 void AlphabetDigitalSort(string

原创 面試OR筆試26——求1到n之和

1 題目及要求 1.1 題目描述 求1到n的和。要求不能使用乘除法,for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。   2 解答 2.1 代碼 #include <iostream> u

原创 面試OR筆試18——哈希表處理字符串

1哈希表處理字符 字符的哈希表雖然佔用了一定的額外空間,但可以大大地減少時間複雜度,是典型的空間換取時間的栗子。下面的栗子都屬於這一類。 1.1 第一個只出現k次的字符 【題目】 在字符串中找出第一個只出現k次的字符,如字符串abeccd

原创 面試OR筆試28——數組中重複的數字

1 題目及要求 1.1 題目描述 在長度爲n的整數數組裏的所有的數字都在0到n-1範圍內。數組中某些數字是重複的,但不知道有幾個數字重複,也不知道每個數字重複了幾次。請找出數組中任意一個重複的數字。例如,如果數字長度爲7的數組{2, 3,

原创 面試OR筆試30——單鏈表環入口節點

1 題目及要求 1.1 題目描述 找出一個有環的單鏈表的入口節點,若沒有環則輸出空。   2 解答 2.1 題目分析 1、可以用兩個指針來解決。先定義兩個指針p1, p2連個指向鏈表頭節點。如果鏈表中的環有c個節點,則指針p2在鏈表上向前

原创 面試OR筆試17——最小排列數

1 題目及要求 1.1 題目描述 把多個由字符串表示的正整數拼接起來排成一個整數,輸出最下的一個排列。例如輸入{3, 32, 321},則輸出321323 。   2 解答 2.1 代碼 string minNumber(vector<

原创 面試OR筆試24——翻轉單詞順序

1 題目及要求 1.1 題目描述 輸入一英文句子,翻轉句子中單詞的順序,但單詞內的字符順序不變(標點字符和普通字母一樣處理)。例如:輸入I am a student.則輸出student. a am I 。   2 解答 2.1 題目分析

原创 面試OR筆試21——兩個鏈表的第一個公共節點

1 題目及要求 1.1 題目描述 輸入兩個鏈表,找出他們的第一個公共節點。   2 解答 2.1 代碼 #include <iostream> #include <stack> using namespace std; // 鏈表節點類

原创 面試OR筆試27——位運算做加法

1 題目及要求 1.1 題目描述 寫一個函數,求兩個整數的和。要求在函數體內不得使用+、-、*、/ 四則運算符號。(分析:根據題意只能使用位運算)   2 解答 2.1 代碼 int add_m(int n1, int n2){ in

原创 面試OR筆試29——構建乘積數組

1 題目及要求 1.1 題目描述 給定數組A[0, 1, 2, ......, n-1],請構建數組B[0, 1, 2, ......, n-1],其中B中的元素B[i]=A[0]×A[1]×A[2]×......×A[i-1]×A[i+

原创 面試OR筆試31——二叉樹中序遍歷第k節點

1 題目及要求 1.1 題目描述 給一個二叉樹,請找出其中的中序遍歷的第k節點。   2 解答 2.1 題目分析 中序遍歷時每訪問一個節點後k減一,直到k==1時的節點就是所求節點。   2.2 代碼 #include <iostrea