Skip to content

lwzjb6/Algorithm-Notes

Repository files navigation

简介

本算法笔记是本人学习算法和刷题过程的记录和总结,主要涉及刷题过程中常见的基础算法,进阶高级算法并未涉及。编程语言是c++, 刷题平台主要是leetcodeacwing, 因此笔记中的代码既有核心代码模型,也有acm模式。

由于本笔记的初心是用于自我学习的总结和整理,因此并不会对各种算法进行详细的讲解,主要是总结了常见算法的模板,关键点以及适合解决的问题场景等。因此建议想要学算法的还是看“代码随想录”或者“acwing”等专业的算法网站或平台。本算法笔记可作为一个题单或参考。

建议查看方式:

  1. vscode + Markdown Preview Enhanced
  2. 直接下载算法笔记.pdf

本笔记的总结参考了很多资料,有时出于节省时间考虑,直接引用了各位大佬们的图或文字,因此在此一并说明。 非常感谢:代码随想录 [https://www.programmercarl.com/]; acwing算法基础课和算法提高课 [https://www.acwing.com/]; 李煜东的《算法竞赛进阶指南》; 力扣官方题解以及力扣上的各位大佬们:灵茶山艾府,ylb, 82年的八块腹肌男, 小羊肖恩,Krahets 等。

包含内容

一、基础算法

二分 哈希表 双指针 位运算 字符串 贪心 前缀和与差分 模拟 排序 有限状态自动机 额外有价值的题目

二、数据结构

链表 二叉树 栈 队列 单调栈 单调队列 优先队列 并查集 字典树 置换环 树状数组 线段树 LRU_LFU 跳表 其它数据结构

三、搜索算法

DFS BFS

四、动态规划

线性DP 记忆化搜索 股票系列 编辑距离问题 最长上升子序列 最长公共子序列 背包问题 区间DP 树形DP 数位DP 状压DP 计数DP 博弈DP

五、数学

质数 约数 欧拉函数 快速幂和快速乘 扩展欧几里得算法 求组合数 容斥原理 博弈论

六、图论

树与图的遍历 最短路 最小生成树 拓扑排序 二分图 欧拉图

七、比赛题目

力扣周赛

数据范围反推算法

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published