yydcyy01 / leetCode

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

leetCode

Learning algorithm from leetCode, Work hard , boy .

TODOList

cn.yydcyy md 文档格式排序

cn.yydcyy

一 算法**
1 双指针
1. 有序数组的 Two Sum 167
2. 两数平方和 633
3. 反转字符串中的元音字符 345
4. 回文字符串 680
5. 归并两个有序数组 88
6. 判断链表是否存在环 141
7. 最长子序列 524
2 排序
2.1 快速选择quickSelection
2.2 堆heap
1. Kth Element
2.3 BucketSort
1. 出现频率最多的 k 个元素
2. 按照字符出现次数对字符串排序
2.4 荷兰国旗问题DutchFlag
1. 按颜色进行排序
3 贪心**
1. 分配饼干
2. 不重叠的区间个数
3. 投飞镖刺破气球
4. 根据身高和序号重组队列
5. 买卖股票最大的收益
6. 买卖股票的最大收益 II
7. 种植花朵
8. 判断是否为子序列
9. 修改一个数成为非递减数组
10. 子数组最大的和
11. 分隔字符串使同种字符出现在一起
4 二分查找
1. 求开方
2. 大于给定元素的最小元素
3. 有序数组的 Single Element
4. 第一个错误的版本
5. 旋转数组的最小数字
6. 查找区间
5 分治divideAndConquer
1. 给表达式加括号
2. 不同的二叉搜索树
6 搜索search
6.1 BFS
1. 计算在网格中从原点到特定点的最短路径长度
2. 组成整数的最小平方数数量
3. 最短单词路径
6.2 DFS
1. 查找最大的连通面积
2. 矩阵中的连通分量数目
3. 好友关系的连通分量数目
4. 填充封闭区域
5. 能到达的太平洋和大西洋的区域
6.3 Backtracking
1. 数字键盘组合
2. IP 地址划分
3. 在矩阵中寻找字符串
4. 输出二叉树中所有从根到叶子的路径
5. 排列
6. 含有相同元素求排列
7. 组合
8. 组合求和
9. 含有相同元素的组合求和
10. 1-9 数字的组合求和
11. 子集
12. 含有相同元素求子集
13. 分割字符串使得每个部分都是回文数
14. 数独
15. N 皇后
7 动态规划DP
7.1 斐波那契数列 fibonacci 1. 爬楼梯
2. 强盗抢劫
3. 强盗在环形街区抢劫
4. 信件错排
5. 母牛生产
7.2 矩阵路径 matrix path
1. 矩阵的最小路径和
2. 矩阵的总路径数
7.3 数组区间 arrayInterval
1. 数组区间和
2. 数组中等差递增子区间的个数
7.4 分割整数 splitInteger
1. 分割整数的最大乘积
2. 按平方数来分割整数
3. 分割整数构成字母字符串
7.5 最长递增子序列 LIS
1. 最长递增子序列
2. 一组整数对能够构成的最长链
3. 最长摆动子序列
7.6 最长公共子序列 LCS
7.7 0-1 背包 napsack
1. 划分数组为和相等的两部分
2. 改变一组数的正负号使得它们的和为一给定数
3. 01 字符构成最多的字符串
4. 找零钱的最少硬币数
5. 找零钱的硬币数组合
6. 字符串按单词列表分割
7. 组合总和
7.8 股票交易 stockTrading
1. 需要冷却期的股票交易
2. 需要交易费用的股票交易
3. 只能进行两次的股票交易
4. 只能进行 k 次的股票交易
7.9 字符串编辑stringEdit
1. 删除两个字符串的字符使它们相等
2. 编辑距离
3. 复制粘贴字符
8 数学Math
8.1 素数分解 primeDecomposition
8.2 整除
8.3 最大公约数最小公倍数
1. 生成素数序列
2. 最大公约数
3. 使用位操作和减法求解最大公约数
8.4 进制转换
1. 7 进制
2. 16 进制
3. 26 进制
8.5 阶乘
1. 统计阶乘尾部有多少个 0
8.6 字符串加法减法
1. 二进制加法
2. 字符串加法
8.7 相遇问题
1. 改变数组元素使所有的数组元素都相等
8.8 多数投票问题
1. 数组中出现次数多于 n / 2 的元素
8.9 其它
1. 平方数
2. 3 的 n 次方
3. 乘积数组
4. 找出数组中的乘积最大的三个数
二 数据结构相关
1 链表Linked
1. 找出两个链表的交点 160
2. 链表反转 206
3. 归并两个有序的链表
4. 从有序链表中删除重复节点
5. 删除链表的倒数第 n 个节点
6. 交换链表中的相邻结点
7. 链表求和
8. 回文链表
9. 分隔链表
10. 链表元素按奇偶聚集
2 树 tree
2.1 递归
1. 树的高度
2. 平衡树
3. 两节点的最长路径
4. 翻转树
5. 归并两棵树
6. 判断路径和是否等于一个数
7. 统计路径和等于一个数的路径数量
8. 子树
9. 树的对称
10. 最小路径
11. 统计左叶子节点的和
12. 相同节点值的最大路径长度
13. 间隔遍历
14. 找出二叉树中第二小的节点
2.2 层次遍历
1. 一棵树每层节点的平均数
2. 得到左下角的节点
2.3 前中后序遍历
1. 非递归实现二叉树的前序遍历
2. 非递归实现二叉树的后序遍历
3. 非递归实现二叉树的中序遍历
2.4 BST
1. 修剪二叉查找树
2. 寻找二叉查找树的第 k 个元素
3. 把二叉查找树每个节点的值都加上比它大的节点的值
4. 二叉查找树的最近公共祖先
5. 二叉树的最近公共祖先
6. 从有序数组中构造二叉查找树
7. 根据有序链表构造平衡的二叉查找树
8. 在二叉查找树中寻找两个节点,使它们的和为一个给定值
9. 在二叉查找树中查找两个节点之差的最小绝对值
10. 寻找二叉查找树中出现次数最多的值
2.5 Trie
1. 实现一个 Trie 2. 实现一个 Trie,用来求前缀和
3 栈和队列 stackAndQueue
1. 用栈实现队列
2. 用队列实现栈
3. 最小值栈
4. 用栈实现括号匹配
5. 数组中元素与下一个比它大的元素之间的距离
6. 循环数组中比当前元素大的下一个元素
4 哈希表HashTable
1. 数组中两个数的和为给定值
2. 判断数组是否含有重复元素
3. 最长和谐序列
4. 最长连续序列
5 字符串String
1. 字符串循环移位包含
2. 字符串循环移位
3. 字符串中单词的翻转
4. 两个字符串包含的字符是否完全相同
5. 计算一组字符集合可以组成的回文字符串的最大长度
6. 字符串同构
7. 回文子字符串个数
8. 判断一个整数是否是回文数
9. 统计二进制字符串中连续 1 和连续 0 数量相同的子字符串个数
6 数组与矩阵ArraysAndMatrices
1. 把数组中的 0 移到末尾
2. 改变矩阵维度
3. 找出数组中最长的连续 1
4. 有序矩阵查找
5. 有序矩阵的 Kth Element
6. 一个数组元素在 [1, n] 之间,其中一个数被替换为另一个数,找出重复的数和丢失的数
7. 找出数组中重复的数,数组值在 [1, n] 之间
8. 数组相邻差值的个数
9. 数组的度
10. 对角元素相等的矩阵
11. 嵌套数组
12. 分隔数组
7 图 Map
7.1 二分图
1. 判断是否为二分图
7.2 拓扑排序
1. 课程安排的合法性
2. 课程安排的顺序
7.3 并查集
1. 冗余连接
8 位运算 bitOperation
1. 统计两个数的二进制表示有多少位不同
2. 数组中唯一一个不重复的元素
3. 找出数组中缺失的那个数
4. 数组中不重复的两个元素
5. 翻转一个数的比特位
6. 不用额外变量交换两个整数
7. 判断一个数是不是 2 的 n 次方
8. 判断一个数是不是 4 的 n 次方
9. 判断一个数的位级表示是否不会出现连续的 0 和 1
10. 求一个数的补码
11. 实现整数的加法
12. 字符串数组最大乘积
13. 统计从 0 ~ n 每个数的二进制表示中 1 的个数

About


Languages

Language:Java 100.0%