/algorithm

:sparkles:个人算法训练仓库,包括leetcode、洛谷、杭州电子科技大学OJ

Primary LanguageC++MIT LicenseMIT

LeetCode

# Title Solution Difficulty Type
0001 两数之和 JS/c++ Easy
0002 两数相加 JS/c++ Medium
0003 无重复字符的最长子串 JS/c++ Medium
0004 寻找两个正序数组的中位数 JS/c++ Hard
0005 最长回文子串 JS/c++ Medium
0006 Z 字形变换 c++ Medium
0007 整数反转 JS/c++ Easy
0008 字符串转换整数 (atoi) c++ Medium
0009 回文数 JS/c++ Easy
0011 盛最多水的容器 c++ Medium 双指针
0014 最长公共前缀 JS/c++ Medium
0015 三数之和 JS/c++ Medium 双指针
0016 最接近的三数之和 c++ Medium
0017 电话号码的字母组合 JS/c++ Medium
0018 四数之和 c++ Medium 双指针
0020 有效的括号 JS/c++ Easy
0021 合并两个有序链表 JS/c++ Easy
0021 括号生成 c++ Medium
0024 两两交换链表中的节点 JS/c++ MeEdium
0026 删除有序数组中的重复项 c++ Easy
0033 搜索旋转排序数组 JS/c++ Medium
0034 在排序数组中查找元素的第一个和最后一个位置 JS/c++ Medium
0035 搜索插入位置 c++ Easy
0038 外观数列 JS/c++ Easy
0039 组合总数 JS/c++ Medium
0039 组合总数 Ⅱ c++ Medium
0042 接雨水 c++ Hard 动态规划
0045 跳跃游戏 Ⅱ c++ Medium
0046 全排列 JS/c++ Medium
0047 全排列 Ⅱ c++ Medium
0048 旋转图像 c++ Medium
0050 Pow(x, n) JS/c++ Medium
0054 螺旋矩阵 c++ Medium
0055 跳跃游戏 c++ Medium
0056 合并区间 c++ Medium
0060 排列序列 c++ Hard
0061 旋转列表 c++ Medium
0062 不同路径 c++ Medium
0063 不同路径 II c++ Medium
0064 最小路径和 c++ Medium
0071 简化路径 c++ Medium
0075 颜色分类 c++ Medium
0077 组合 c++ Medium
0078 子集 c++ Medium
0079 单词搜索 c++ Medium 回溯法
0080 删除有序数组中的重复项 II c++ Medium
0082 删除排序链表中的重复元素 II c++ Medium
0083 删除排序链表中的重复元素 c++ Easy
0090 子集 Ⅱ c++ Medium
0091 解码方法 c++ Medium 动态规划
0093 复原 ip 地址 c++ Medium
0094 二叉树的中序遍历 c++ Easy
0095 不同的二叉搜索树 Ⅱ c++ Medium
0096 不同的二叉搜索树 c++ Medium
0097 交错字符串 c++ Medium 动态规划
0102 二叉树的层序遍历 c++ Medium
0107 二叉树的层序遍历 Ⅱ c++ Medium
0110 平衡二叉树 c++ Easy
0120 三角形最小路径和 c++ Medium 动态规划
0122 买卖股票的最佳时机 II c++ Medium 贪心算法/动态规划
0131 分割回文串 c++ Medium 回溯 + 动态规划
0134 加油站 c++ Medium 贪心算法
0135 分发糖果 c++ Hard 贪心算法
0139 单词拆分 c++ Medium 动态规划
0144 二叉树的前序遍历 c++ Medium
0145 二叉树的后序遍历 c++ Easy
0167 两数之和 II - 输入有序数组 JS/c++ Easy
0199 二叉树的右视图 c++ Medium
0300 最长递增子序列 js Medium
0402 移掉 K 位数字 c++ Medium 贪心算法 + 单调栈
0406 根据身高重建队列 c++ Medium 贪心算法
0435 无重叠区间 c++ Medium 贪心算法
0452 用最少数量的箭引爆气球 c++ Medium 贪心算法
0752 打开转盘锁 c++ Medium 双向 BFS
0872 叶子相似的树 c++ Easy
1218 最长定差子序列 c++ Medium 动态规划
1720 解码异或后的数组 c++ Easy

剑指 offer

# Title Solution Difficulty Type
003 剑指 Offer 03. 数组中重复的数字 c++ Easy
004 剑指 Offer 04. 二维数组中的查找 c++ Medium
005 剑指 Offer 05. 替换空格 c++ Easy
006 剑指 Offer 06. 从尾到头打印链表 c++ Easy
007 剑指 Offer 07. 重建二叉树 c++ Medium
009 剑指 Offer 09. 用两个栈实现队列 c++ Easy
010 剑指 Offer 10- I. 斐波那契数列 c++ Easy 递归
011 剑指 Offer 11. 旋转数组的最小数字 c++ Easy 二分查找
012 剑指 Offer 12. 矩阵中的路径 c++ Medium 回溯法
013 剑指 Offer 13. 机器人的运动范围 c++ Medium 回溯法
014 剑指 Offer 14- I. 剪绳子 c++ Medium 动态规划
015 剑指 Offer 15. 二进制中 1 的个数 c++ Easy 位运算
016 剑指 Offer 16. 数值的整数次方 c++ Medium 快速幂
017 剑指 Offer 17. 打印从 1 到最大的 n 位数 c++ Medium 全排列/回溯法
018 剑指 Offer 18. 删除链表的节点 c++ Easy 全排列/回溯法
020 剑指 Offer 20. 表示数值的字符串 c++ Medium 自动机
021 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 c++ Easy 双指针
022 剑指 Offer 22. 链表中倒数第 k 个节点 c++ Easy 双指针
024 剑指 Offer 24. 反转链表 c++ Easy 双指针/递归
025 剑指 Offer 25. 合并两个排序的链表 c++ Easy 双指针
026 剑指 Offer 26. 树的子结构 c++ Medium 递归
027 剑指 Offer 27. 二叉树的镜像 c++ Easy 递归
028 剑指 Offer 28. 对称的二叉树 c++ Easy 递归
029 剑指 Offer 29. 顺时针打印矩阵 c++ Easy 模拟
030 剑指 Offer 30. 包含 min 函数的栈 c++ Easy 模拟
031 剑指 Offer 31. 栈的压入、弹出序列 c++ Medium 模拟
032 剑指 Offer 32 - II. 从上到下打印二叉树 II c++ Easy 层序遍历
032 剑指 Offer 32 - III. 从上到下打印二叉树 III c++ Medium 层序遍历
033 剑指 Offer 33. 二叉搜索树的后序遍历序列 c++ Medium 递归
034 剑指 Offer 34. 二叉树中和为某一值的路径 c++ Medium 回溯
035 剑指 Offer 35. 复杂链表的复制 c++ Medium 递归
036 剑指 Offer 36. 二叉搜索树与双向链表 c++ Medium 递归/中序遍历
037 剑指 Offer 37. 序列化二叉树 c++ Hard 递归
038 剑指 Offer 38. 字符串的排列 c++ Medium 回溯
039 剑指 Offer 39. 数组中出现次数超过一半的数字 c++ Easy 模拟
040 剑指 Offer 40. 最小的 k 个数 c++ Easy 快排
042 剑指 Offer 42. 连续子数组的最大和 c++ Easy 动态规划
043 剑指 Offer 43. 1 ~ n 整数中 1 出现的次数 c++ Hard 模拟
044 剑指 Offer 44. 数字序列中某一位的数字 c++ Medium 模拟
045 剑指 Offer 45. 把数组排成最小的数 c++ Medium 模拟
046 剑指 Offer 46. 把数字翻译成字符串 c++ Medium 动态规划
047 剑指 Offer 47. 礼物的最大价值 c++ Medium 动态规划
048 剑指 Offer 48. 最长不含重复字符的子字符串 c++ Medium 双指针
049 剑指 Offer 49. 丑数 c++ Medium 动态规划
051 剑指 Offer 51. 数组中的逆序对 c++ Hard 归并排序
052 剑指 Offer 52. 两个链表的第一个公共节点 c++ Easy 模拟
053 剑指 Offer 53 - I. 在排序数组中查找数字 I c++ Easy 二分查找
053 剑指 Offer 53 - II. 0 ~ n-1 中缺失的数字 c++ Easy 二分查找
054 剑指 Offer 54. 二叉搜索树的第 k 大节点 c++ Easy dfs
055 剑指 Offer 55 - I. 二叉树的深度 c++ Easy bfs
055 剑指 Offer 55 - II. 平衡二叉树 c++ Easy dfs

洛谷

# Title Solution Difficulty
P1056 排座椅 c++ 普及/提高-
P1023 税收与补贴问题 c++ 普及/提高-
P1031 均分纸牌 c++ 普及-
P1042 乒乓球 c++ 普及-
P1042 花生采摘 c++ 普及-
P1098 字符串的展开 c++ 普及/提高-

杭州电子科技大学 OJ

# Title Solution type Ratio
2035 人见人爱 A^B c++ 快速幂 66.35%
2037 今年暑假不 AC c++ 区间贪心 53.25%
2046 骨牌铺方格 c++ 递推 47.98%
2048 神、上帝以及老天爷 c++ 错位排列 39.47%
2049 不容易系列之(4)——考新郎 c++ 错位排列 36.38%
2054 A == B ? c++ 16.23%
2058 The sum problem c++ 数论 29.97%
2059 龟兔赛跑 c++ 动态规划 35.86%
2064 汉诺塔 III c++ 递推 47.54%
2067 小兔的棋盘 c++ 动态规划 50.13%
2068 RPG 的错排 c++ 错位排列 39.83%
2077 汉诺塔 IV c++ 递推 68.98%
2084 数塔 c++ 动态规划 57.61%
2094 产生冠军 c++ 拓扑排序 44.98%

其他

# Title Solution type source
1 聊天成好友? c++ 并查集 水院 OJ
2 背包装载 c++ DFS 算法笔记
3 矩阵块数计算 c++ BFS 算法笔记
3 迷宫 c++ BFS 算法笔记