TODO
- 重构 README 生成的 Algorithms 和 Codes 两个类,并迁移至 tools 目录。
- 优化主页 README 下的 Algorithms 链接,调整为层级目录的形式(类似 Notes)
Done
- 【
2022.01.18
】优化 algorithm 笔记模板的 tag 部分,使用 json 代替目前的正则抽取。 - 【
2022.01.17
】自动生成目录结构(books、papers 等) - 【
2021.11.12
】优化 auto-readme,使用上一次的 commit info,而不是默认 'Auto-README'- 参考:
git commit -m "$(git log -"$(git rev-list origin/master..master --count)" --pretty=%B | cat)"
- 说明:使用 origin/master 到 master 之间所有的 commit 信息作为这次的 message;
- 参考:
- 【
2021.11.11
】bert 支持加载指定层 ->_test_load_appointed_layers()
- 【
2021.11.08
】把 __test.py 文件自动加入文档测试(放弃)- 有些测试比较耗时,不需要全部加入自动测试;
- __test.py 针对的是存在相对引用的模块,如果这些模块有改动,会即时测试,所以也不需要自动测试
- 【
2021.11.03
】pytorch-lightning 代码阅读
合集-LeetCode [40] ¶
LeetCode 0001 两数之和 (简单, 2021-10)
LeetCode 0002 两数相加 (中等, 2021-10)
LeetCode 0005 最长回文子串 (中等, 2021-10)
LeetCode 0010 正则表达式匹配 (困难, 2022-01)
LeetCode 0011 盛最多水的容器 (中等, 2021-10)
LeetCode 0015 三数之和 (中等, 2021-10)
LeetCode 0016 最接近的三数之和 (中等, 2021-10)
LeetCode 0019 删除链表的倒数第N个结点 (中等, 2022-01)
LeetCode 0021 合并两个有序链表 (简单, 2021-10)
LeetCode 0029 两数相除 (中等, 2021-10)
LeetCode 0033 搜索旋转排序数组 (中等, 2021-10)
LeetCode 0042 接雨水 (困难, 2021-10)
LeetCode 0053 最大子数组和 (简单, 2022-01)
LeetCode 0064 最小路径和 (中等, 2022-01)
LeetCode 0070 爬楼梯 (简单, 2022-01)
LeetCode 0072 编辑距离 (困难, 2022-01)
LeetCode 0086 分隔链表 (中等, 2021-10)
LeetCode 0091 解码方法 (中等, 2022-02)
LeetCode 0104 二叉树的最大深度 (简单, 2021-10)
LeetCode 0111 二叉树的最小深度 (简单, 2021-10)
LeetCode 0120 三角形最小路径和 (中等, 2022-01)
LeetCode 0121 买卖股票的最佳时机 (简单, 2022-01)
LeetCode 0122 买卖股票的最佳时机II (中等, 2022-01)
LeetCode 0123 买卖股票的最佳时机III (困难, 2022-01)
LeetCode 0143 重排链表 (中等, 2022-01)
LeetCode 0152 乘积最大子数组 (中等, 2022-01)
LeetCode 0167 两数之和2(输入有序数组) (简单, 2021-10)
LeetCode 0187 重复的DNA序列 (中等, 2021-10)
LeetCode 0240 搜索二维矩阵2 (中等, 2021-10)
LeetCode 0300 最长递增子序列 (中等, 2022-01)
LeetCode 0343 整数拆分 (中等, 2021-12)
LeetCode 0352 将数据流变为多个不相交区间 (困难, 2021-10)
LeetCode 0434 字符串中的单词数 (简单, 2021-10)
LeetCode 0437 路径总和3 (中等, 2021-10)
LeetCode 0441 排列硬币 (简单, 2021-10)
LeetCode 0496 下一个更大元素 (简单, 2021-11)
LeetCode 0611 有效三角形的个数 (中等, 2021-10)
LeetCode 0859 亲密字符串 (简单, 2021-11)
LeetCode 0876 链表的中间结点 (简单, 2022-01)
LeetCode 0915 分割数组 (中等, 2022-01)
合集-剑指Offer [75] ¶
剑指Offer 0300 数组中重复的数字 (简单, 2021-11)
剑指Offer 0400 二维数组中的查找 (中等, 2021-11)
剑指Offer 0500 替换空格 (简单, 2021-11)
剑指Offer 0600 从尾到头打印链表 (简单, 2021-11)
剑指Offer 0700 重建二叉树 (中等, 2021-11)
剑指Offer 0900 用两个栈实现队列 (简单, 2021-11)
剑指Offer 1001 斐波那契数列 (简单, 2021-11)
剑指Offer 1002 跳台阶 (简单, 2021-11)
剑指Offer 1100 旋转数组的最小数字 (简单, 2021-11)
剑指Offer 1200 矩阵中的路径 (中等, 2021-11)
剑指Offer 1300 机器人的运动范围 (中等, 2021-11)
剑指Offer 1401 剪绳子(整数拆分) (中等, 2021-11)
剑指Offer 1402 剪绳子 (中等, 2021-11)
剑指Offer 1500 二进制中1的个数 (简单, 2021-11)
剑指Offer 1600 数值的整数次方(快速幂) (中等, 2021-11)
剑指Offer 1700 打印从1到最大的n位数(N叉树的遍历) (中等, 2021-11)
剑指Offer 1800 删除链表的节点 (简单, 2021-11)
剑指Offer 1900 正则表达式匹配 (困难, 2021-11)
剑指Offer 2000 表示数值的字符串 (中等, 2021-11)
剑指Offer 2100 调整数组顺序使奇数位于偶数前面 (简单, 2021-11)
剑指Offer 2200 链表中倒数第k个节点 (简单, 2021-11)
剑指Offer 2400 反转链表 (简单, 2021-11)
剑指Offer 2500 合并两个排序的链表 (简单, 2021-11)
剑指Offer 2600 树的子结构 (中等, 2021-11)
剑指Offer 2700 二叉树的镜像 (简单, 2021-11)
剑指Offer 2800 对称的二叉树 (简单, 2021-11)
剑指Offer 2900 顺时针打印矩阵(3种思路4个写法) (中等, 2021-11)
剑指Offer 3000 包含min函数的栈 (简单, 2021-11)
剑指Offer 3100 栈的压入、弹出序列 (中等, 2021-11)
剑指Offer 3201 层序遍历二叉树 (简单, 2021-11)
剑指Offer 3202 层序遍历二叉树 (简单, 2021-11)
剑指Offer 3203 层序遍历二叉树(之字形遍历) (简单, 2021-11)
剑指Offer 3300 二叉搜索树的后序遍历序列 (中等, 2021-12)
剑指Offer 3400 二叉树中和为某一值的路径 (中等, 2021-12)
剑指Offer 3500 复杂链表的复制(深拷贝) (中等, 2021-12)
剑指Offer 3600 二叉搜索树与双向链表 (中等, 2021-12)
剑指Offer 3700 序列化二叉树 (困难, 2021-12)
剑指Offer 3800 字符串的排列(全排列) (中等, 2021-12)
剑指Offer 3900 数组中出现次数超过一半的数字(摩尔投票) (简单, 2021-12)
剑指Offer 4000 最小的k个数(partition操作) (简单, 2021-12)
剑指Offer 4100 数据流中的中位数 (困难, 2021-12)
剑指Offer 4200 连续子数组的最大和 (简单, 2021-12)
剑指Offer 4300 1~n整数中1出现的次数 (困难, 2021-12)
剑指Offer 4400 数字序列中某一位的数字 (中等, 2021-12)
剑指Offer 4500 把数组排成最小的数 (中等, 2021-12)
剑指Offer 4600 斐波那契数列-3(把数字翻译成字符串) (中等, 2021-12)
剑指Offer 4700 礼物的最大价值 (中等, 2021-12)
剑指Offer 4800 最长不含重复字符的子字符串 (中等, 2021-12)
剑指Offer 4900 丑数 (中等, 2021-12)
剑指Offer 5000 第一个只出现一次的字符 (简单, 2021-12)
剑指Offer 5100 数组中的逆序对 (困难, 2022-01)
剑指Offer 5200 两个链表的第一个公共节点 (简单, 2022-01)
剑指Offer 5301 求0~n-1中缺失的数字 (简单, 2022-01)
剑指Offer 5302 在排序数组中查找数字 (简单, 2022-01)
剑指Offer 5400 二叉搜索树的第k大节点 (简单, 2022-01)
剑指Offer 5501 求二叉树的深度 (简单, 2022-01)
剑指Offer 5502 判断是否为平衡二叉树 (简单, 2022-01)
剑指Offer 5601 数组中数字出现的次数 (中等, 2022-01)
剑指Offer 5602 数组中数字出现的次数 (中等, 2022-01)
剑指Offer 5701 和为s的两个数字 (简单, 2022-01)
剑指Offer 5702 和为s的连续正数序列 (简单, 2022-01)
剑指Offer 5801 翻转单词顺序 (简单, 2022-01)
剑指Offer 5802 左旋转字符串 (简单, 2022-01)
剑指Offer 5901 滑动窗口的最大值 (困难, 2022-01)
剑指Offer 5902 队列的最大值 (中等, 2022-01)
剑指Offer 6000 n个骰子的点数 (中等, 2022-01)
剑指Offer 6100 扑克牌中的顺子 (简单, 2022-01)
剑指Offer 6200 圆圈中最后剩下的数字(约瑟夫环问题) (中等, 2022-01)
剑指Offer 6300 买卖股票的最佳时机 (中等, 2022-01)
剑指Offer 6400 求1~n的和 (中等, 2022-01)
剑指Offer 6500 不用加减乘除做加法 (简单, 2022-01)
剑指Offer 6600 构建乘积数组 (中等, 2022-01)
剑指Offer 6700 把字符串转换成整数(atoi) (中等, 2022-01)
剑指Offer 6801 二叉搜索树的最近公共祖先 (简单, 2022-01)
剑指Offer 6802 二叉树的最近公共祖先 (简单, 2022-01)
合集-剑指Offer2 [3] ¶
合集-牛客 [25] ¶
牛客 0001 大数加法 (中等, 2022-01)
牛客 0002 重排链表 (中等, 2022-01)
牛客 0003 链表中环的入口结点 (简单, 2022-01)
牛客 0004 判断链表中是否有环 (简单, 2022-01)
牛客 0005 二叉树根节点到叶子节点的所有路径和 (中等, 2022-01)
牛客 0006 二叉树中的最大路径和 (困难, 2022-01)
牛客 0007 买卖股票的最好时机(一) (简单, 2022-01)
牛客 0008 二叉树中和为某一值的路径(二) (中等, 2022-01)
牛客 0009 二叉树中和为某一值的路径(一) (简单, 2022-01)
牛客 0010 大数乘法 (中等, 2022-01)
牛客 0011 将升序数组转化为平衡二叉搜索树 (简单, 2022-01)
牛客 0012 重建二叉树 (中等, 2022-01)
牛客 0013 二叉树的最大深度 (简单, 2022-01)
牛客 0014 按之字形顺序打印二叉树 (中等, 2022-01)
牛客 0015 求二叉树的层序遍历 (中等, 2022-01)
牛客 0016 对称的二叉树 (简单, 2022-01)
牛客 0017 最长回文子串 (中等, 2022-01)
牛客 0018 顺时针旋转矩阵 (简单, 2022-01)
牛客 0019 连续子数组的最大和 (简单, 2022-01)
牛客 0020 数字字符串转化成IP地址 (中等, 2022-01)
牛客 0021 链表内指定区间反转 (中等, 2022-01)
牛客 0022 合并两个有序的数组 (中等, 2022-01)
牛客 0023 划分链表 (中等, 2022-01)
牛客 0091 最长上升子序列(三) (困难, 2022-02)
牛客 0145 01背包 (中等, 2022-02)
合集-纯数学 [1] ¶
基础-经典问题&代码 [19] ¶
LeetCode 0072 编辑距离 (困难, 2022-01)
LeetCode 0300 最长递增子序列 (中等, 2022-01)
剑指Offer 0700 重建二叉树 (中等, 2021-11)
剑指Offer 1600 数值的整数次方(快速幂) (中等, 2021-11)
剑指Offer 2400 反转链表 (简单, 2021-11)
剑指Offer 2900 顺时针打印矩阵(3种思路4个写法) (中等, 2021-11)
剑指Offer 3100 栈的压入、弹出序列 (中等, 2021-11)
剑指Offer 3500 复杂链表的复制(深拷贝) (中等, 2021-12)
剑指Offer 3600 二叉搜索树与双向链表 (中等, 2021-12)
剑指Offer 3800 字符串的排列(全排列) (中等, 2021-12)
剑指Offer 3900 数组中出现次数超过一半的数字(摩尔投票) (简单, 2021-12)
剑指Offer 4000 最小的k个数(partition操作) (简单, 2021-12)
剑指Offer 4900 丑数 (中等, 2021-12)
剑指Offer 5100 数组中的逆序对 (困难, 2022-01)
剑指Offer 6000 n个骰子的点数 (中等, 2022-01)
剑指Offer 6200 圆圈中最后剩下的数字(约瑟夫环问题) (中等, 2022-01)
剑指Offer 6700 把字符串转换成整数(atoi) (中等, 2022-01)
剑指Offer 6801 二叉搜索树的最近公共祖先 (简单, 2022-01)
剑指Offer2 001 整数除法 (中等, 2022-02)
更多细分类型 ...¶
基础-数学 [4] ¶
基础-模拟 [17] ¶
LeetCode 0005 最长回文子串 (中等, 2021-10)
LeetCode 0143 重排链表 (中等, 2022-01)
LeetCode 0352 将数据流变为多个不相交区间 (困难, 2021-10)
LeetCode 0859 亲密字符串 (简单, 2021-11)
LeetCode 0915 分割数组 (中等, 2022-01)
剑指Offer 2900 顺时针打印矩阵(3种思路4个写法) (中等, 2021-11)
剑指Offer 3900 数组中出现次数超过一半的数字(摩尔投票) (简单, 2021-12)
剑指Offer 4300 1~n整数中1出现的次数 (困难, 2021-12)
剑指Offer 4400 数字序列中某一位的数字 (中等, 2021-12)
剑指Offer 6100 扑克牌中的顺子 (简单, 2022-01)
剑指Offer 6200 圆圈中最后剩下的数字(约瑟夫环问题) (中等, 2022-01)
剑指Offer 6300 买卖股票的最佳时机 (中等, 2022-01)
剑指Offer 6700 把字符串转换成整数(atoi) (中等, 2022-01)
牛客 0001 大数加法 (中等, 2022-01)
牛客 0007 买卖股票的最好时机(一) (简单, 2022-01)
牛客 0010 大数乘法 (中等, 2022-01)
牛客 0017 最长回文子串 (中等, 2022-01)
技巧-从暴力递归到动态规划 [2] ¶
技巧-位运算 [6] ¶
技巧-单调栈、单调队列 [2] ¶
技巧-双指针 [13] ¶
LeetCode 0005 最长回文子串 (中等, 2021-10)
LeetCode 0011 盛最多水的容器 (中等, 2021-10)
LeetCode 0015 三数之和 (中等, 2021-10)
LeetCode 0016 最接近的三数之和 (中等, 2021-10)
LeetCode 0042 接雨水 (困难, 2021-10)
LeetCode 0167 两数之和2(输入有序数组) (简单, 2021-10)
LeetCode 0611 有效三角形的个数 (中等, 2021-10)
剑指Offer 2100 调整数组顺序使奇数位于偶数前面 (简单, 2021-11)
剑指Offer 4800 最长不含重复字符的子字符串 (中等, 2021-12)
剑指Offer 5701 和为s的两个数字 (简单, 2022-01)
剑指Offer 5702 和为s的连续正数序列 (简单, 2022-01)
剑指Offer 5801 翻转单词顺序 (简单, 2022-01)
牛客 0022 合并两个有序的数组 (中等, 2022-01)
技巧-双指针-快慢指针 [6] ¶
技巧-双指针-滑动窗口 [1] ¶
技巧-哈希表(Hash) [7] ¶
技巧-有限状态自动机 [1] ¶
数据结构-二叉搜索树 [1] ¶
数据结构-二叉树 [28] ¶
LeetCode 0104 二叉树的最大深度 (简单, 2021-10)
LeetCode 0111 二叉树的最小深度 (简单, 2021-10)
LeetCode 0437 路径总和3 (中等, 2021-10)
剑指Offer 0700 重建二叉树 (中等, 2021-11)
剑指Offer 2600 树的子结构 (中等, 2021-11)
剑指Offer 2700 二叉树的镜像 (简单, 2021-11)
剑指Offer 2800 对称的二叉树 (简单, 2021-11)
剑指Offer 3201 层序遍历二叉树 (简单, 2021-11)
剑指Offer 3202 层序遍历二叉树 (简单, 2021-11)
剑指Offer 3203 层序遍历二叉树(之字形遍历) (简单, 2021-11)
剑指Offer 3300 二叉搜索树的后序遍历序列 (中等, 2021-12)
剑指Offer 3400 二叉树中和为某一值的路径 (中等, 2021-12)
剑指Offer 3600 二叉搜索树与双向链表 (中等, 2021-12)
剑指Offer 3700 序列化二叉树 (困难, 2021-12)
剑指Offer 5400 二叉搜索树的第k大节点 (简单, 2022-01)
剑指Offer 5501 求二叉树的深度 (简单, 2022-01)
剑指Offer 5502 判断是否为平衡二叉树 (简单, 2022-01)
剑指Offer 6802 二叉树的最近公共祖先 (简单, 2022-01)
牛客 0005 二叉树根节点到叶子节点的所有路径和 (中等, 2022-01)
牛客 0006 二叉树中的最大路径和 (困难, 2022-01)
牛客 0008 二叉树中和为某一值的路径(二) (中等, 2022-01)
牛客 0009 二叉树中和为某一值的路径(一) (简单, 2022-01)
牛客 0011 将升序数组转化为平衡二叉搜索树 (简单, 2022-01)
牛客 0012 重建二叉树 (中等, 2022-01)
牛客 0013 二叉树的最大深度 (简单, 2022-01)
牛客 0014 按之字形顺序打印二叉树 (中等, 2022-01)
牛客 0015 求二叉树的层序遍历 (中等, 2022-01)
牛客 0016 对称的二叉树 (简单, 2022-01)
数据结构-堆、优先队列 [3] ¶
数据结构-字符串 [9] ¶
LeetCode 0434 字符串中的单词数 (简单, 2021-10)
LeetCode 0859 亲密字符串 (简单, 2021-11)
剑指Offer 0500 替换空格 (简单, 2021-11)
剑指Offer 1900 正则表达式匹配 (困难, 2021-11)
剑指Offer 2000 表示数值的字符串 (中等, 2021-11)
剑指Offer 5802 左旋转字符串 (简单, 2022-01)
剑指Offer 6700 把字符串转换成整数(atoi) (中等, 2022-01)
牛客 0001 大数加法 (中等, 2022-01)
牛客 0010 大数乘法 (中等, 2022-01)
数据结构-数组、矩阵(二维数组) [5] ¶
数据结构-栈、队列 [10] ¶
剑指Offer 0600 从尾到头打印链表 (简单, 2021-11)
剑指Offer 0900 用两个栈实现队列 (简单, 2021-11)
剑指Offer 0900 用两个栈实现队列 (简单, 2021-11)
剑指Offer 3000 包含min函数的栈 (简单, 2021-11)
剑指Offer 3100 栈的压入、弹出序列 (中等, 2021-11)
剑指Offer 3201 层序遍历二叉树 (简单, 2021-11)
剑指Offer 3202 层序遍历二叉树 (简单, 2021-11)
剑指Offer 3203 层序遍历二叉树(之字形遍历) (简单, 2021-11)
剑指Offer 5902 队列的最大值 (中等, 2022-01)
牛客 0014 按之字形顺序打印二叉树 (中等, 2022-01)
数据结构-线段树、树状数组 [1] ¶
数据结构-设计 [4] ¶
数据结构-链表 [17] ¶
LeetCode 0002 两数相加 (中等, 2021-10)
LeetCode 0019 删除链表的倒数第N个结点 (中等, 2022-01)
LeetCode 0086 分隔链表 (中等, 2021-10)
LeetCode 0143 重排链表 (中等, 2022-01)
LeetCode 0876 链表的中间结点 (简单, 2022-01)
剑指Offer 0600 从尾到头打印链表 (简单, 2021-11)
剑指Offer 1800 删除链表的节点 (简单, 2021-11)
剑指Offer 2200 链表中倒数第k个节点 (简单, 2021-11)
剑指Offer 2400 反转链表 (简单, 2021-11)
剑指Offer 2500 合并两个排序的链表 (简单, 2021-11)
剑指Offer 3500 复杂链表的复制(深拷贝) (中等, 2021-12)
剑指Offer 5200 两个链表的第一个公共节点 (简单, 2022-01)
牛客 0002 重排链表 (中等, 2022-01)
牛客 0003 链表中环的入口结点 (简单, 2022-01)
牛客 0004 判断链表中是否有环 (简单, 2022-01)
牛客 0021 链表内指定区间反转 (中等, 2022-01)
牛客 0023 划分链表 (中等, 2022-01)
算法-二分 [12] ¶
LeetCode 0029 两数相除 (中等, 2021-10)
LeetCode 0033 搜索旋转排序数组 (中等, 2021-10)
LeetCode 0240 搜索二维矩阵2 (中等, 2021-10)
LeetCode 0352 将数据流变为多个不相交区间 (困难, 2021-10)
LeetCode 0441 排列硬币 (简单, 2021-10)
剑指Offer 0400 二维数组中的查找 (中等, 2021-11)
剑指Offer 1100 旋转数组的最小数字 (简单, 2021-11)
剑指Offer 1600 数值的整数次方(快速幂) (中等, 2021-11)
剑指Offer 5301 求0~n-1中缺失的数字 (简单, 2022-01)
剑指Offer 5302 在排序数组中查找数字 (简单, 2022-01)
剑指Offer2 001 整数除法 (中等, 2022-02)
剑指Offer2 069 山峰数组的顶部 (简单, 2022-02)
算法-分治 [4] ¶
算法-动态规划(记忆化搜索)、递推 [30] ¶
LeetCode 0005 最长回文子串 (中等, 2021-10)
LeetCode 0010 正则表达式匹配 (困难, 2022-01)
LeetCode 0053 最大子数组和 (简单, 2022-01)
LeetCode 0064 最小路径和 (中等, 2022-01)
LeetCode 0070 爬楼梯 (简单, 2022-01)
LeetCode 0072 编辑距离 (困难, 2022-01)
LeetCode 0091 解码方法 (中等, 2022-02)
LeetCode 0120 三角形最小路径和 (中等, 2022-01)
LeetCode 0121 买卖股票的最佳时机 (简单, 2022-01)
LeetCode 0122 买卖股票的最佳时机II (中等, 2022-01)
LeetCode 0123 买卖股票的最佳时机III (困难, 2022-01)
LeetCode 0152 乘积最大子数组 (中等, 2022-01)
LeetCode 0300 最长递增子序列 (中等, 2022-01)
LeetCode 0343 整数拆分 (中等, 2021-12)
剑指Offer 1001 斐波那契数列 (简单, 2021-11)
剑指Offer 1001 斐波那契数列 (简单, 2021-11)
剑指Offer 1002 跳台阶 (简单, 2021-11)
剑指Offer 1401 剪绳子(整数拆分) (中等, 2021-11)
剑指Offer 1900 正则表达式匹配 (困难, 2021-11)
剑指Offer 4200 连续子数组的最大和 (简单, 2021-12)
剑指Offer 4600 斐波那契数列-3(把数字翻译成字符串) (中等, 2021-12)
剑指Offer 4700 礼物的最大价值 (中等, 2021-12)
剑指Offer 4800 最长不含重复字符的子字符串 (中等, 2021-12)
剑指Offer 4900 丑数 (中等, 2021-12)
剑指Offer 6000 n个骰子的点数 (中等, 2022-01)
剑指Offer 6200 圆圈中最后剩下的数字(约瑟夫环问题) (中等, 2022-01)
牛客 0017 最长回文子串 (中等, 2022-01)
牛客 0019 连续子数组的最大和 (简单, 2022-01)
牛客 0091 最长上升子序列(三) (困难, 2022-02)
牛客 0145 01背包 (中等, 2022-02)
算法-广度优先搜索(BFS) [3] ¶
算法-排序 [6] ¶
算法-深度优先搜索(DFS) [14] ¶
LeetCode 0111 二叉树的最小深度 (简单, 2021-10)
LeetCode 0437 路径总和3 (中等, 2021-10)
剑指Offer 0600 从尾到头打印链表 (简单, 2021-11)
剑指Offer 1200 矩阵中的路径 (中等, 2021-11)
剑指Offer 1200 矩阵中的路径 (中等, 2021-11)
剑指Offer 1300 机器人的运动范围 (中等, 2021-11)
剑指Offer 1700 打印从1到最大的n位数(N叉树的遍历) (中等, 2021-11)
剑指Offer 3400 二叉树中和为某一值的路径 (中等, 2021-12)
剑指Offer 3800 字符串的排列(全排列) (中等, 2021-12)
剑指Offer 5400 二叉搜索树的第k大节点 (简单, 2022-01)
牛客 0005 二叉树根节点到叶子节点的所有路径和 (中等, 2022-01)
牛客 0008 二叉树中和为某一值的路径(二) (中等, 2022-01)
牛客 0009 二叉树中和为某一值的路径(一) (简单, 2022-01)
牛客 0020 数字字符串转化成IP地址 (中等, 2022-01)
算法-递归、迭代 [14] ¶
LeetCode 0021 合并两个有序链表 (简单, 2021-10)
LeetCode 0104 二叉树的最大深度 (简单, 2021-10)
剑指Offer 0600 从尾到头打印链表 (简单, 2021-11)
剑指Offer 1600 数值的整数次方(快速幂) (中等, 2021-11)
剑指Offer 1900 正则表达式匹配 (困难, 2021-11)
剑指Offer 2400 反转链表 (简单, 2021-11)
剑指Offer 2400 反转链表 (简单, 2021-11)
剑指Offer 2500 合并两个排序的链表 (简单, 2021-11)
剑指Offer 2500 合并两个排序的链表 (简单, 2021-11)
剑指Offer 2600 树的子结构 (中等, 2021-11)
剑指Offer 2700 二叉树的镜像 (简单, 2021-11)
剑指Offer 2800 对称的二叉树 (简单, 2021-11)
剑指Offer 3600 二叉搜索树与双向链表 (中等, 2021-12)
剑指Offer 6400 求1~n的和 (中等, 2022-01)
Work Utils ¶
find_best_threshold: 搜索最佳阈值(二分类)
BertTokenizer: Bert 分词器
ner_result_parse: NER 结果解析(基于 BIO 格式)
split: 将数据按比例切分
ImageCheck: 图片完整性检查
get_real_ext: 获取图像文件的真实后缀
Pytorch Models ¶
DualNet: 双塔结构
SiameseNet: 孪生网络,基于双塔结构
SimCSE: SimCSE
Bert: Bert by Pytorch
BertPretrain: Bert 预训练(MLM + NSP)
SentenceBert: Bert 句向量
BertSequenceTagging: Bert 序列标注
BertTextClassification: Bert 文本分类
LayerNorm: Layer Normalization
Pytorch Utils ¶
DictTensorDataset: 字典格式的 Dataset
ToyDataLoader: 简化创建 DataLoader 的过程
BertDataLoader: 简化 Bert 训练数据的加载
ContrastiveLoss: 对比损失(默认距离函数为欧几里得距离)
CrossEntropyLoss: 交叉熵
TripletLoss: Triplet 损失,常用于无监督学习、few-shot 学习
FGM: Fast Gradient Method (对抗训练)
PGM: Projected Gradient Method (对抗训练)
Trainer: Trainer 基类
set_seed: 设置全局随机数种子,使实验可复现
init_weights: 默认参数初始化
Python Utils ¶
simple_argparse: 一个简化版 argparse
ArrayDict: 数组字典,支持 slice
ValueArrayDict: 数组字典,支持 slice,且操作 values
BunchDict: 基于 dict 实现 Bunch 模式
FieldBunchDict: 基于 dataclass 的 BunchDict
ls_dir_recur: 递归遍历目录下的所有文件
files_concat: 文件拼接
get_caller_name: 获取调用者的名称
function_test_dn: 函数测试装饰器