基础 chapter1 排序 item1 归并排序 item2 归并排序扩展 求小和 item3 快速排序和荷兰国旗问题 chapter2 链表 Item1_SingleReserve 单链表反转 三个变量 Item2_doubleNodeReserve 双链表反转 两个变量 Item3_printRepeat 打印链表中相等节点数据 Item4_nodeLoopback 判断一个链表是不是回环链表,stack和code方法 Item5_nodePartition 将链表分为前面>k,中间=k.后面>k Item6_nodeIntersect 判读两个可能有环的链表是否相交 Item7_nodeSort 链表排序 chapter3 二叉树 Item1_recursiveTraversal 递归遍历 Item2_noRecursive 非递归遍历 Item3_widthRecursive 宽度遍历,以及统计最多节点层 Item4_MaxNodes 统计哪一层节点最多 Item5_isBST 判断是否是一颗搜索树 Item6_isCBT 判断是否是一颗完全二叉树 Item7_isFull 判断是否为满二叉树 Item8_isBalance 判断是否是平衡二叉树 Item9_parentNode 寻找最近汇聚节点 chapter4 图 Code1_BFS 图的广度遍历 Code2_DFS 图的深度遍历 Code3_TopologySort 求拓扑排序 Code4_Kruskal 最小生成树的 k算法 priorityQueue Code5_Prim 最小生成树的 p算法 采用 map、set priorityQueue Code6_MinRoute 图的最短路径问题 采用map、set chapter5 前缀树和贪心算法 Code1_TrieTree 前缀树 Code2_LowestLexicography 字典排序 Code3_LessMoneySplitGold 分黄金使用最少的钱 Code4_BestArrange 如何组织可以开最多的会 Code5_IPO 怎么样可以使利益最大化 Code6_MadianQuick 维护两个堆,能够快速的获取中位数 Code7_NQueen N皇后问题 chapter6 暴力递归 Code1_Hanoi 汉罗塔问题 Code2_PrintAllSubSquences 打印字符串所有子序列 Code3_PrintFullArrangement 打印字符串的全排列 Code4_ReverseStackUsingRecursive 递归反转栈 Code6_ConvertToLetterString 将数字字符串转换为字母 Code7_Knapsack 给定两个数组,分别是重量对应价值,bag最大能装重量,求最大能装价值 Code8_CardsInLine 给定一个数组,只能拿左右两边,拿完另一个拿,怎么拿使值最大 Code9_NQueue N皇后问题,位运算 基础提升 chapter 1 Code1_KMP KMP算法 Code2_Manacher Manacher算法 最长回文子串 chapter2 Code1_SlidingWindowsMaxArray 滑动窗口,每次都取出最大值 Code2_MonotonousStack 单调栈,可以直到一个数组中每个数左边和右边第一个大于自己的数 Code3_SonMinMulSum 利用单调栈,求指标 chapter4 Code1_getMax 不用比较符号,实现比大小 Code2_Power 判断一个数是否是2或4的幂 Code3_AddMinusMulDivideByBit 不用+-*/ 实现加减乘除 chapter5 Code1_RobotWalk 机器人行走 Code2_CoinsMin 组成一个数,使用最少硬币 Code3_CartsInLine 先后拿卡牌游戏,怎么拿可以拿到可以拿到最大值 Code4_HorseJump 马踏棋盘游戏 中级提升 chapter1 Code1_CordCoverMaxPoint 一条绳子可以框多少个点 Code2_AppleMinBags 大小为6/8的袋子恰好装下苹果,最少袋子 Code3_ColorLeftRight 所有R比G到起点的距离大 Code4_MaxOneBorderSize 0/1矩阵中,由1围成的最大矩阵 Code5_Rand5ToRand7 用随机生成1-5的方法,生成等概率1-7 Code6_UniqueBST 给你n个节点,请问可以构造多少种二叉树 Code7_NeedParentheses 判断一个括号序列是否有效 chapter2 Code2_MagicOp 从一个数组移动数到另一个数组,使两个数组平均值都增大 Code3_NumToStringWays 数字装换成字符串的方法数 Code4_ParenthesesDeep 括号序列中,最大有效括号数 Code5_StackSortStack 只能用一个辅助栈,使一个无序的栈变有序 Code6_Eat 先手后手吃草,谁会赢 Code7_MaxSumTree 求出从根节点出发,到叶节点,求出最大权重路径 chapter3 Code1_PackingMachine 洗衣机,使衣服平均需要多少轮遍历 Code2_ZigZagPrintMatrix 之字型或对象线打印矩阵 Code3_RotateMatrix 将矩阵旋转90度 Code4_PrintMatrixSpiralOrder 螺旋打印矩阵 Code5_FindNumInSortedMatrix 在从上下,左右有序的矩阵中查数 Code6_TopKTimesRealTime 字符数组中找出出现频率最高的 Code7_SplitNBySM 两个公式,两个公式使字符串增长到n,至少调用几次 Code8_TopKTimes 一个堆结构,永远维护,出现频次最高的k个字符数组 chapter5 Code1_GetFolderTree 将一些字符串生成前缀树 Code2_BSTTODoubleLinkedList 将搜索二叉树变成双向链表 Code3_BiggestSubBSTInTree 最大的子搜索二叉树 Code4_PreAndInArrayToPostArray 前序遍历集合和中序遍历集合求出后续遍历集合 Code5_Light 路灯问题 Code6_SubArrayMaxSum 连续子数组累加和的最大值 Code7_SubMatrixMaxSum 压缩矩阵成数组,求子矩阵的累加和最大值 chapter6 Code1_ChineseNumExpression 将阿拉伯数字转中文表达 Code2_PrintNoInArray 给你n个数的数组,里面数字从1-n找出不在数组中的值 Code3_Kiki 主播人气问题,base case不够解决方案 Code4_CompleteTreeNodeNumber 求出完全二叉树的节点个数 chapter7 Code1_ExpressionNumber 1、0、&、|、^加括号运算得到预期结果的方法 Code2_LongestNoRepeatSubString 最长无重复子串 Code3_EditCost 将一个字符串转成另一个字符串最小花费 Code4_RemoveDuplicateLettersLess 删除重复字符,并且按照最小字典序返回