Skip to content

XWHQSJ/SwordtoOffer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SwordtoOffer

剑指offer面试题

.
├── Algorithm
├── ArrayPartition.cpp    剑指offer扩展 01 调整数组顺序使偶数位于奇数前面
├── BuildTree.cpp
├── BuildTree.h    剑指offer 07 重建二叉树
├── CMakeLists.txt    编译文件
├── CQueue.cpp
├── CQueue.h    剑指offer 09 用两个栈实现队列
├── CuttingRopeI.cpp
├── CuttingRopeI.h    剑指offer 14-1 剪绳子
├── CuttingRopeII.cpp
├── CuttingRopeII.h    剑指offer 14-2 剪绳子II
├── DataStruct
│   ├── test.cpp    双向链表的测试
│   ├── Node.h    数据结构 单向节点
│   ├── SingleNodeList.h    数据结构 单链表
│   ├── BiNode.h    数据结构 双向节点
│   └── DoubleListNode.h    数据结构 双向链表
├── Exchange.cpp
├── Exchange.h    剑指offer 21 调整数组顺序使奇数位于偶数前面 
├── Exist.cpp
├── Exist.h    剑指offer 12 矩阵中的路径
├── Fibonacci.cpp
├── Fibonacci.h    剑指offer 10-1 斐波那契数列 
├── FindNumberIn2DArray.cpp
├── FindNumberIn2DArray.h    剑指offer 04 二维数组中的查找
├── FindRepeatNumber.cpp
├── FindRepeatNumber.h    剑指offer 03 数组中重复的数字
├── GetIntersectionNode.cpp
├── GetIntersectionNode.h    剑指offer 52 两个链表的第一个公共节点
├── GetKthFromEnd.cpp
├── GetKthFromEnd.h    剑指offer 22 链表中倒数第k个节点
├── HammingWeight.cpp
├── HammingWeight.h    剑指offer 15 二进制中1的个数
├── IsMatch.cpp
├── IsMatch.h    剑指offer 19 正则表达式匹配
├── IsNumber.cpp
├── IsNumber.h    剑指offer 20 表示数值的字符串
├── main.cpp    测试主文件
├── Median.cpp
├── Median.h    剑指offer扩展 02 中位数
├── MergeTwoLists.cpp
├── MergeTwoLists.h    剑指offer 25 合并两个排序的链表
├── MinArray.cpp
├── MinArray.h    剑指offer 11 旋转数组的最小数字
├── MovingCount.cpp
├── MovingCount.h    剑指offer 13 机器人的运动范围
├── MyPow.cpp
├── MyPow.h    剑指offer 16 数值的整数次方
├── NthUglyNumber.cpp
├── NthUglyNumber.h    剑指offer 49 丑数
├── NumWays.cpp
├── NumWays.h    剑指offer 10-2 青蛙跳台阶问题
├── PrintNumbers.cpp
├── PrintNumbers.h    剑指offer 17 打印从1到最大的n位数
├── QuadSort.h    快速排序最优O(n)
├── README.md   
├── ReplaceSpace.cpp
├── ReplaceSpace.h    剑指offer 05 替换空格
├── Resource
│   ├── 两个链表的第一个公共节点1.png
│   ├── 两个链表的第一个公共节点2.png
│   ├── 两个链表的第一个公共节点3.png
│   ├── 两个链表的第一个公共节点4.png
│   ├── binarysearchtree_improved.png
│   ├── binarytree.png
│   ├── 复杂链表的复制1.png
│   ├── 复杂链表的复制2.png
│   ├── 复杂链表的复制3.png
│   ├── 连续子数组的最大和.png
│   ├── 连续子数组的最大和2.png
│   ├── 复杂链表的复制回溯法1.png
│   ├── 复杂链表的复制回溯法2.png
│   └── 有限状态机.png
├── DeleteNode.cpp
├── DeleteNode.h    剑指offer 18 删除链表的节点
├── ReverseList.cpp
├── ReverseList.h    剑指offer 24 反转链表
├── ValidateStackSequences.cpp
├── ValidateStackSequences.h    剑指offer 31 栈的压入、弹出序列
├── CopyRandomList.cpp
├── CopyRandomList.h    剑指offer 35 复杂链表的复制
├── Permutation.cpp
├── Permutation.h    剑指offer 38 字符串的排列
├── FirstUniqChar.cpp
├── FirstUniqChar.h    剑指offer 50 第一个只出现依次的字符
├── SumNums.cpp
├── SumNums.h    剑指offer 64 求1+2+...+n
├── Add.cpp
├── Add.h    剑指offer 65 不用加减乘除做加法
├── IsStraight.cpp
├── IsStraight.h    剑指offer 61 扑克牌中的顺子
├── ConstructArr.cpp
├── ConstructArr.h    剑指offer 65 不用加减乘除做加法
├── CountDigitOne.cpp
├── CountDigitOne.h    剑指offer 43 1-n整数中1出现的次数
├── FindNthDigit.cpp
├── FindNthDigit.h    剑指offer 44 数字序列中某一位的数字
├── MinNumber.cpp
├── MinNumber.h    剑指offer 45 把数组排成最小的数
├── MaxValue.cpp
├── MaxValue.h    剑指offer 47 礼物的最大价值
├── LengthOfLongestSubstring.cpp
├── LengthOfLongestSubstring.h    剑指offer 48 最长不含重复字符的子字符串
├── SpiralOrder.cpp
├── SpiralOrder.h    剑指offer 29 顺时针打印矩阵
├── MinStack.cpp
├── MinStack.h    剑指offer 30 包含min函数的栈
├── MaxSubArray.cpp
├── MaxSubArray.h    剑指offer 42 连续子数组的最大和
├── MedianFinder.cpp
├── MedianFinder.h    剑指offer 41 数据流中的中位数
├── GetLeastNumbers.cpp
├── GetLeastNumbers.h    剑指offer 40 最小的k个数
├── Search.cpp
├── Search.h    剑指offer 53-I 在排序数组中查找数字I
├── MissingNumber.cpp
├── MissingNumber.h    剑指offer 53-II 0-n-1中缺失的数字
├── IsSymmetric.cpp
├── IsSymmetric.h    剑指offer 28 对称的二叉树
├── MaxDepth.cpp
├── MaxDepth.h    剑指offer 55-I 二叉树的深度
├── IsBalanced.cpp
├── IsBalanced.h    剑指offer 55-II 平衡二叉树
├── LevelOrder.cpp
├── LevelOrder.h    剑指offer 32-I 从上到下打印二叉树
├── LevelOrderII.cpp
├── LevelOrderII.h    剑指offer 32-II 从上到下打印二叉树II
├── LevelOrderIII.cpp
├── LevelOrderIII.h    剑指offer 32-III 从上到下打印二叉树III
├── VerifyPostorder.cpp
├── VerifyPostorder.h    剑指offer 33 二叉搜索树的后序遍历序列
├── KthLargest.cpp
├── KthLargest.h    剑指 offer 54 二叉搜索树的第k大节点
├── PathSum.cpp
├── PathSum.h    剑指offer 34 二叉树中和为某一值的路径
├── TreeToDoublyList.cpp
├── TreeToDoublyList.h    剑指offer 36 二叉搜索树与双向链表
├── LowestCommonAncestor.cpp
├── LowestCommonAncestor.h    剑指offer 68-I 二叉搜索树的最近公共祖先
├── Codec.cpp
├── Codec.h    剑指offer 37 序列化二叉树
├── LowestCommonAncestorOfBiTree.cpp
├── LowestCommonAncestorOfBiTree.h    剑指offer 68-II 二叉树的最近公共祖先
├── MaxSlidingWindow.cpp
├── MaxSlidingWindow.h    剑指offer 59-I 滑动窗口的最大值
├── MaxQueue.cpp
├── MaxQueue.h    剑指offer 59-II 队列的最大值
├── TwoSum.cpp
├── TwoSum.h    剑指offer 57 和为s的两个数字
├── TwoSum60.cpp
├── TwoSum60.h    剑指offer 60 n个骰子的点数
├── LastRemaining.cpp
├── LastRemaining.h    剑指offer 62 圆圈中最后剩下的数字
├── SingleNumbers.cpp
├── SingleNumbers.h    剑指offer 56-I 数组中数字出现的次数
├── SingleNumber.cpp
├── SingleNumber.h    剑指offer 56-II 数组中数字出现的次数II
├── ReversePairs.cpp
├── ReversePairs.h    剑指offer 51 数组中的逆序对
├── StrToInt.cpp
├── StrToInt.h    剑指offer 67 把字符串转换为整数
├── TranslateNum.cpp
├── TranslateNum.h    剑指offer 46 把数字翻译成字符串
├── ReverseWords.cpp
├── ReverseWords.h    剑指offer 58-I 翻转单词顺序
├── ReverseLeftWords.cpp
├── ReverseLeftWords.h    剑指offer 58-II 左旋转字符串
├── MajorityElement.cpp
├── MajorityElement.h    剑指offer 39 数组中出现次数超过一半的数字
├── ReversePrint.cpp
└── ReversePrint.h    剑指offer 06 从尾到头打印链表