The sword refers to offer (using Java)
所有代碼全部oj過,可放心閱讀,且均選擇優解、最優解。
github地址:項目源碼
1-10
- 二維數組中的查找
- 替換空格
- 從尾到頭打印鏈表
- 重建二叉樹
- 用兩個棧實現隊列
- 旋轉數組的最小數字
- 斐波那契數列
- 跳臺階
- 變態跳臺階
- 矩形覆蓋
11-20
- 二進制中1的個數
- 數值的整數次方
- 調整數組順序使奇數位於偶數前面
- 鏈表中倒數第k個結點
- 反轉鏈表
- 合併兩個排序的鏈表
- 樹的子結構
- 二叉樹鏡像
- 順時針打印矩陣
- 包含min函數的棧
21-30
- 棧的壓入、彈出序列
- 層次打印二叉樹
- 二叉搜索樹的後序遍歷序列
- 二叉樹中和爲某一值的路徑
- 複雜鏈表的複製
- 二叉搜索樹與雙向鏈表
- 字符串的排列
- 數組中出現次數超過一半的數字
- 最小的k個數
- 連續子數組的最大和
31-40
- 整數中1出現的次數(從1到n整數中1出現的次數)
- 把數組排成最小的數
- 醜數
- 第一個只出現一次的字符
- 數組中的逆序對
- 兩個鏈表的第一個公共結點
- 統計一個數字在排序數組中出現的次數。
- 樹的深度
- 平衡二叉樹
- 數組中只出現一次的數字
41-50
- 和爲S的連續正數序列
- 和爲S的兩個數字
- 左旋轉字符串
- 翻轉單詞順序列
- 撲克牌順子
- 孩子們的遊戲(圓圈中最後剩下的數)
- 求1+2+3+...+n
- 不用加減乘除做加法
- 正則表達式匹配
- 數組中重複的數字
51-60
- 把字符串轉換成整數
- 構建乘積數組
- 表示數值的字符串
- 字符流中第一個不重複的字符
- 鏈表中環的入口結點
- 刪除鏈表中重複的結點
- 二叉樹的下一個結點
- 對稱的二叉樹
- 按之字形順序打印二叉樹
- 把二叉樹打印成多行
61-66
- 序列二叉樹
- 二叉搜索樹的第k個結點
- 數據流中的中位數
- 滑動窗口的最大值
- 矩陣中的路徑
- 機器人的運動範圍