原创 面試題 6: 重建二叉樹

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

原创 面試題 20: 順時針打印矩陣

一. 題目 輸入一個矩陣,按照從外到裏以順時針的順序依次打印出每一個數字. 代碼請到我的代碼庫中下載 Point2Offer 二. 代碼 package week_4; /**難度係數:*** * 劍指offer: 順時針打印矩

原创 面試題40: 數組中只出現一次的數字

一. 題目 一個整型數組裏除了兩個數字之外,其他的數字都出現了兩次.請寫程序找出這兩個只出現一次的數字.要求時間複雜度是O(n),空間複雜度是O(1). 代碼請到我的代碼庫中下載 Point2Offer 二. 代碼 packag

原创 面試題 8: 旋轉數組的最小數字

一. 題目 把一個數組最開始的若干個元素搬到數組的末尾,我們稱之爲數組的旋轉.輸入一個遞增排序的數組的一個旋轉,輸出旋轉數組的最小元素.例如數組{3,4,5,1,2}爲{1,2,3,4,5}的一個旋轉,該數組的最小值爲1. 代碼請

原创 面試題 19: 數的鏡像

一. 題目 請完成一個函數,輸入一個二叉樹,該函數輸出它的鏡像. 代碼請到我的代碼庫中下載 Point2Offer 二. 代碼 package week_4; /**難度係數:*** * 劍指offer: 樹的鏡像 * 方法:

原创 面試題31: 連續子數組的最大和

一. 題目 輸入一個整型數組,數組裏有正數也有負數.數組中一個或連續的多個整數組成一個子數組.求所有子數組的和的最大值.要求時間複雜度爲O(n). 代碼請到我的代碼庫中下載 Point2Offer 二. 代碼 package we

原创 面試題 18: 樹的子結構

一. 題目 輸入兩棵二叉樹A和B,判斷B是不是A的子結構. 代碼請到我的代碼庫中下載 Point2Offer 二. 代碼 package week_4; /**難度係數:*** * 劍指offer: 樹的子結構 * 方法:

原创 面試題 32: 從1到n 整數中1出現的次數

一. 題目 輸入一個整數n,求從1到n這n個整數的十進制表示中1出現的次數.例如輸入12,從1到12這些整數中包含1的數字有1,10,11和12,1一共出現了5次. 代碼請到我的代碼庫中下載 Point2Offer 二. 代碼 p

原创 (譯)二叉樹的深度優先搜索

原文鏈接: Depth First Search/Traversal in Binary Tree 目標: -給定一個二叉樹,進行深度優先搜索/遍歷 方法: 方法非常簡單,使用棧 首先把根節點加入棧 從棧中彈出一個元素,然後把

原创 面試題 22: 棧的壓入,彈出序列

一. 題目 輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否爲該棧的彈出順序.假設壓入棧的所有數字均不相等.例如序列1,2,3,4,5 是某棧的壓棧序列,序列4,5,3,2,1是該棧對應的一個彈出序列,但4,3,

原创 面試題 37: 兩個鏈表的第一個公共結點

一. 題目 輸入兩個鏈表,找出它們的第一個公共結點. 代碼請到我的代碼庫中下載 Point2Offer 二. 代碼 package week_4; /**難度係數:*** * 劍指offer: 兩個鏈表的第一個公共節點 *

原创 面試題 44: 撲克牌的順子

一. 題目 從撲克牌中隨機抽5張牌,判斷是不是一個順子,即這5張牌是不是連續的.大小王可看做任意數字. 代碼請到我的代碼庫中下載 Point2Offer 二. 代碼 package week_4; /**難度係數:*** *

原创 面試題 7: 兩個棧實現一個隊列

一. 題目 用兩個棧實現一個隊列,並完成在隊列尾部插入結點和在隊列頭部刪除結點的功能. 代碼請到我的代碼庫中下載 Point2Offer 二. 代碼 package week_4; import java.util.Stack;

原创 面試題 45: 圓圈中最後剩下的數字

一. 題目 0,1,2,…,n-1 這n個數字排成一個圓圈,從數字0開始每次從這個圓圈裏刪除第m個數字.求這個圓圈裏剩下的最後一個數字. 代碼請到我的代碼庫中下載 Point2Offer 二. 代碼 package week_4;

原创 面試題 21: 包含min函數的棧

一. 題目 定義棧的數據結構,請在該類型中實現一個能夠得到棧的最小元素的min 函數.在該棧中,調用min,push 及pop的時間複雜度都是O(1). 代碼請到我的代碼庫中下載 Point2Offer 二. 代碼 package