原创 劍指offer面試題63:二叉搜索樹的第k個節點 Java實現

題目:二叉搜索樹的第k個節點          給定一顆二叉搜索樹,請找出其中的第k大的節點。例如,下圖中的二叉搜索樹中,按節點數值大小順序第三個節點的值 是4.   算法分析: 如果按照中序遍歷的順序遍歷一棵二叉搜索樹,遍歷序

原创 劍指Offer面試題62:序列化二叉樹

題目:序列化二叉樹         請實現兩個函數,分別用來序列化和反序列化二叉樹。 算法分析:         通過分析解決前面的面試題6.我們知道可以從前序遍歷和中序遍歷構造出一棵二叉樹。受此啓發,我們可以先把一棵二叉樹序列化成

原创 劍指Offer面試題59:對稱二叉樹 Java實現

題目:對稱二叉樹           請實現一個函數,用來判斷一顆二叉樹是不是對稱的。如果一顆二叉樹和它的鏡像一樣,那麼它是對稱的。 算法分析:   如上圖所示,圖(1)位一顆對稱二叉樹,圖(2)和圖(3)都不是對稱二叉樹 算

原创 劍指Offer面試題54:表示數值的字符串

題目:表示數值的字符串         請實現一個函數用來判斷字符串是否表示數值(包括整數和小數)。例如,字符串“+100”,“5e2”,"-123","3.1416",  "-1e-16"都表示數值,但“12e",  "1a3.14

原创 劍指Offer面試題66:矩陣中的路徑 java實現

題目:矩陣中的路徑           請設計一個函數,用來判斷在一個矩陣中是否存在一條包含某字符串所有字符的路徑。路徑可以從矩陣中任意一格開始,每一步可以在矩陣中向左右上下移動一格。如果一條路徑經過了矩陣的某一格,那麼該路徑不能再次進

原创 劍指Offer面試題57:刪除重複鏈表 Java實現

</pre><pre code_snippet_id="1928155" snippet_file_name="blog_20161013_2_4408641" name="code" class="java"> 垃圾一樣的文本編輯器

原创 nextInt()與nextLine()方法連用時問題

在nextInt(),next(),nextDouble(),nextFloat()方法與nextLine()連用並放在nextLine()前面時,就會出現如下錯誤:             System.out.println(

原创 劍指Offer面試題6:重建二叉樹 Java實現

題目:重建二叉樹           輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複數字。例如,輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,

原创 劍指Offer面試題60:把二叉樹打印成多行 Java實現

題目:把二叉樹打印成多行           從上到下按層打印二叉樹,同一行的節點從左到右的順序打印,每一層打印到新的一行。例如,打印下圖的二叉樹結果爲: 8, 6 10 5  7  9  11 算法分析: 爲了把二叉

原创 劍指Offer面試題61:按之子型打印二叉樹 Java實現

題目:按之字型打印二叉樹           請實現一個函數按照之字形順序打印二叉樹,即第一行按照從左到右的順序打印,第二層按照從右到左的順序打印,即第一行按照從左到右的順序打印,第二層按照從右到左順序打印,第三行再按照從左到右的順序打

原创 劍指Offer面試題67:機器人的運動範圍 Java實現

題目:機器人的運動範圍           地上有一個m行n列的方格。一個機器人從座標(0,0)的格子開始移動,它每次可以向左,向右,向上,向下移動一格,但不能進入行座標和列座標的位數之和大於k的格子。例如:當k爲18時,機器人能夠進入

原创 劍指Offer面試題4:替換空格 Java實現

題目:請實現一個函數,把字符串中的每個空格替換成“20%”。例如,輸入“we are so happy”則輸出:“we20%are20%so20%happy”。 算法分析: 算法1:時間複雜度爲O(n^2)的解法 現在我們考慮怎

原创 劍指Offer面試題11:數值的整數次方 Java實現

題目:數值的整數次方           實現函數 double Power(double base,int exponent),求base的exponent次方。不得使用庫函數,同時不需要考慮大數問題。 算法分析: 我們都知道

原创 劍指Offer面試題3:二維數組的查找 Java實現

題目:二維數組的查找 在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下的順序排列。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷該數組是否含有該整數。例如在下面的二維數組中,如果查找數字7,則返回tru

原创 劍指Offer面試題65:滑動窗口的最大值 Java實現

題目:給定一個數組和滑動窗口的大小,請找出所有滑動窗口裏的最大值。如果輸入數組{2,3,4,2,6,2,5,1}及滑動窗口的大小3,那麼一共存在6個滑動窗口,他們的最大值分別爲{4.4,6,6,6,5}。 算法分析: