題干 輸入一個整數(shù)n,求1~n這n個整數(shù)的十進制表示中1出現(xiàn)的次數(shù)。例如,輸入12,1~12這些整數(shù)中包含1的數(shù)字有1,10,11和12,1一共出現(xiàn)了5次。 解題思路 舉例分...
題干 輸入一個整數(shù)n,求1~n這n個整數(shù)的十進制表示中1出現(xiàn)的次數(shù)。例如,輸入12,1~12這些整數(shù)中包含1的數(shù)字有1,10,11和12,1一共出現(xiàn)了5次。 解題思路 舉例分...
題干 輸入一個整形數(shù)組,數(shù)組里有正數(shù)也有負(fù)數(shù)。數(shù)組中的一個或連續(xù)多個正數(shù)組成一個子數(shù)組。求所有子數(shù)組的和的最大值。要求時間復(fù)雜度為O(n)。 解題思路 思路一 從頭到尾逐個累...
題干 輸入n個整數(shù),找出其中最小的k個數(shù)。例如,輸入4、5、1、6、2、7、3、8這8個數(shù),則最小的4個數(shù)字是1、2、3、4。 解題思路 思路一 使用 Partition 函...
題干 數(shù)組中有一個數(shù)字出現(xiàn)的冊書超過數(shù)組長度的一半,請找出這個數(shù)字。例如,輸入一個長度為9的數(shù)組「1,2,3,2,2,2,5,4,2」。由于數(shù)字2在數(shù)組中出現(xiàn)了5次,超過數(shù)組...
題干 輸入一個字符串,打印出該字符串中字符的所有組合。例如輸入字符串a(chǎn)bc,則它們的組合有a、b、c、ab、ac、bc、abc。 解題思路 如果輸入n個字符,則求這n個字符的...
題干 輸入一個字符串,打印出該字符串中字符的所有排列。例如輸入字符串a(chǎn)bc,則打印出由a、b、c所能排列出來的所有字符串a(chǎn)bc、acb、bac、bca、cab和cba。 解題...
題干 請實現(xiàn)兩個函數(shù),分別用來序列化和反序列化二叉樹。 解題思路 使用前序遍歷,當(dāng)碰到空指針時,使用特殊符號代替,節(jié)點之間使用符號分割。 代碼實現(xiàn)
題干 輸入一棵二叉搜索樹,將該二叉搜索樹轉(zhuǎn)換成一個排序的雙向鏈表。要求不能創(chuàng)建任何新的節(jié)點,只能調(diào)整樹中節(jié)點指針的方向。比如,輸入如圖的二叉搜索樹,則輸出轉(zhuǎn)換之后的排序雙向鏈...
題干 請實現(xiàn)函數(shù) ComplexListNode* Clone(ComplexListNode* pHead),復(fù)制一個復(fù)雜鏈表。在復(fù)雜鏈表中,每個節(jié)點除了有一個 m_pNe...
題干 輸入一棵二叉樹和一個整數(shù),打印出二叉樹中節(jié)點值的和為輸入整數(shù)的所有路徑。從樹的根節(jié)點開始往下一直到葉子節(jié)點所經(jīng)過的節(jié)點形成一條路徑。二叉樹節(jié)點的定義如下 解題思路 使用...
題干 輸入一個整數(shù)數(shù)組,判斷該數(shù)組是不是某二叉搜索樹的后序遍歷的結(jié)果。如果是則返回true,否則返回false。假設(shè)輸入的數(shù)組的任意兩個數(shù)字都互不相同。 解題思路 二叉搜索樹...
題干 不分行從上到下打印二叉樹 從上到下打印二叉樹到每個節(jié)點,同一層到節(jié)點按照從左到右到順序打印。例如,輸入下圖到二叉樹,則依次打印出8,6,10,5,7,9,11.二叉樹節(jié)...
題干 輸入兩個整數(shù)序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設(shè)壓入棧的所有數(shù)字均不相等。例如序列「1,2,3,4,5」是某棧的壓棧序列,序列「...
題干 定義棧的數(shù)據(jù)結(jié)構(gòu),請在該類型中實現(xiàn)一個能夠得到棧的最小元素的min函數(shù)。在該棧中,調(diào)用min、push及pop的時間復(fù)雜度都是O(1)。 解題思路 首先本題有時間復(fù)雜度...
題干 輸入一個矩陣,按照從外向里以順時針的順序依次打印出每一個數(shù)字。例如,如果輸入如下矩陣: 則依次打印出數(shù)字 1 2 3 4 8 12 16 15 14 13 9 5 6 ...
題干 請實現(xiàn)一個函數(shù),用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的鏡像一樣,那么它就是對稱的。例如在下圖的三棵二叉樹中,第一棵二叉樹是對稱的,而另外兩棵不是。 第一棵...
題干 請完成一個函數(shù),輸入一棵二叉樹,該函數(shù)輸出它的鏡像。二叉樹節(jié)點的定義如下: 解題思路 輸入二叉樹 輸出二叉樹 從圖中可以分析出,輸出的鏡像二叉樹和原二叉樹的各個子樹的根...
題干 輸入兩棵二叉樹A和B,判斷B是不是A的子結(jié)構(gòu)。二叉樹節(jié)點定義如下: 二叉樹A 二叉樹B 解題思路 獲取B的根節(jié)點,遍歷A中是否存在等于B的根節(jié)點的節(jié)點,不存在,則返回f...
題干 輸入兩個遞增排序的鏈表,合并這兩個鏈表并使新鏈表中的節(jié)點仍然使遞增排序的。例如輸入下圖中的鏈表1和鏈表2,則合并之后的升序鏈表如鏈表3所示。鏈表節(jié)點定義如下: 鏈表1 ...
題干 定義一個函數(shù),輸入一個鏈表的圖節(jié)點,反轉(zhuǎn)該鏈表并輸出反轉(zhuǎn)后鏈表的頭節(jié)點。鏈表節(jié)點定義如下: 解題思路 為了防止節(jié)點反轉(zhuǎn)的過程中出現(xiàn)鏈表斷裂的情況出現(xiàn),需要使用一個指針記...