# SwordToOffer **Repository Path**: hackeryang/SwordToOffer ## Basic Information - **Project Name**: SwordToOffer - **Description**: A Java project about exercise codes of the book 《Sword To Offer》. - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2019-05-26 - **Last Updated**: 2022-05-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SwordToOffer A Java project about exercise codes of the book 《Sword To Offer》 on nowcoder.com. 本代码库为牛客网《剑指offer》66题答案,自己手敲,部分答案参考了其他大神的答案,绝大部分代码有详细注释。 # **目录** [1.二维数组中的查找](./src/TwoDimensionalArraySearch.java) [2.替换空格](./src/ReplaceSpaces.java) [3.从尾到头打印链表](./src/ReverseLinkedList.java) [4.重建二叉树](./src/ReconstructBinaryTree.java) [5.用两个栈实现队列](./src/TwoStacksAsQueue.java) [6.旋转数组的最小数字](./src/MinNumber.java) [7.斐波那契数列](./src/Fibonacci.java) [8.跳台阶](./src/JumpFloors.java) [9.变态跳台阶](./src/JumpFloorsII.java) [10.矩形覆盖](./src/RectCover.java) [11.二进制中1的个数](./src/IntToBinaryCount.java) [12.数值的整数次方](./src/Exponent.java) [13.调整数组顺序使奇数位于偶数前面](./src/ReorderArray.java) [14.链表中倒数第k个节点](./src/FindKthToTail.java) [15.反转链表](./src/ReverseList.java) [16.合并两个排序的链表](./src/MergeTwoLinkedLists.java) [17.树的子结构](./src/HasSubtree.java) [18.二叉树的镜像](./src/MirrorBinaryTree.java) [19.顺时针打印矩阵](./src/ClockwisePrint.java) [20.包含min函数的栈](./src/MinStack.java) [21.栈的压入、弹出序列](./src/IsPopOrder.java) [22.从上往下打印二叉树](./src/PreorderTraversal.java) [23.二叉搜索树的后序遍历序列](./src/IsPostorderTraversal.java) [24.二叉树中和为某一值的路径](./src/BinaryTreePaths.java) [25.复杂链表的复制](./src/ComplicatedLinkedListCopy.java) [26.二叉搜索树与双向链表](./src/ConvertBinaryTreeToLinkedList.java) [27.字符串的排列](./src/StringDictionarySort.java) [28.数组中出现次数超过一半的数字](./src/MoreThanHalfTimes.java) [29.最小的K个数](./src/MinKIntegers.java) [30.连续子数组的最大和](./src/BiggestSumOfSubArray.java) [31.整数中1出现的次数](./src/NumberOf1Appears.java) [32.把数组排成最小的数](./src/SortMinNumbers.java) [33.丑数](./src/GetUglyNumber.java) [34.第一个只出现一次的字符](./src/FirstNotRepeatingChar.java) [35.数组中的逆序对](./src/InversePairsInArray.java) [36.两个链表的第一个公共结点](./src/FindFirstPublicNode.java) [37.数字在排序数组中出现的次数](./src/GetCountOfK.java) [38.二叉树的深度](./src/DepthOfBinaryTree.java) [39.平衡二叉树](./src/IsBalancedBinaryTree.java) [40.数组中只出现一次的数字](./src/TwoIntsAppearedOnce.java) [41.和为S的连续正数序列](./src/SumOfSequentialInts.java) [42.和为S的两个数字](./src/SumOfTwoIntsInArray.java) [43.左旋转字符串](./src/LeftRotateString.java) [44.翻转单词顺序列](./src/ReverseString.java) [45.扑克牌顺子](./src/PokerStraight.java) [46.约瑟夫环问题](./src/JosephusLoop.java) [47.求1+2+3+...+n](./src/SumHarder.java) [48.不用加减乘除做加法](./src/PlusWithoutFourOperators.java) [49.把字符串转换成整数](./src/StringToInt.java) [50.数组中重复的数字](./src/DuplicatedIntInArray.java) [51.构建乘积数组](./src/MultiplyWithoutItself.java) [52.正则表达式匹配](./src/RegexMatch.java) [53.表示数值的字符串](./src/IsNumeric.java) [54.字符流中第一个不重复的字符](./src/FirstCharNotDuplicated.java) [55.链表中环的入口结点](./src/EntranceOfLoopLinkedList.java) [56.删除链表中重复的结点](./src/DeleteDuplicatedNodes.java) [57.二叉树的下一个结点](./src/FindNextNode.java) [58.对称的二叉树](./src/IsSymmetricalBinaryTree.java) [59.按之字形顺序打印二叉树](./src/PrintBinaryTreeZigzag.java) [60.把二叉树打印成多行](./src/PrintBinaryTree.java) [61.序列化二叉树](./src/SerializeBinaryTree.java) [62.二叉搜索树的第k个结点](./src/KthTreeNode.java) [63.数据流中的中位数](./src/GetMedian.java) [64.滑动窗口的最大值](./src/MaxValueInWindows.java) [65.矩阵中的路径](./src/HasPathInMatrix.java) [66.机器人的运动范围](./src/RobotRange.java)