各种算法分类整理

本人自学算法一段时间了,将自己所学进行了整理,后续还会更新,希望对大家有帮助。

目录

哈希

双指针

二分

字符串类

DFS

动态规划:

        背包

        线性

        区间

        树形

BFS

图论类

        拓扑排序

        并查集

        dijkstra

        Spfa

单调栈

前缀

差分

树类

        二叉树

        红黑树

        查找树(Trie)

        线段树

博弈论


哈希

        哈希用来查找的时间复杂度为O(1),这在很多地方都可以用到

        1.两数之和,https://leetcode.cn/problems/two-sum/

        2.四平方和,网址后续补充

        3.笨手指,网址后续补充

双指针

        双指针通常用来找子段,通常会将O(n^2)降低至O(n)

        1.无重复字符的最长子串,https://leetcode.cn/problems/longest-substring-without-repeating-characters/

二分

        二分通常用来查找某个值,时间复杂度为O(logn)

        1.查找某数,https://blog.csdn.net/qq_55364042/article/details/130150387?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22130150387%22%2C%22source%22%3A%22qq_55364042%22%7D

        2.数的范围,https://blog.csdn.net/qq_55364042/article/details/130152610?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22130152610%22%2C%22source%22%3A%22qq_55364042%22%7D

        3.我在哪,https://blog.csdn.net/qq_55364042/article/details/130154068?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22130154068%22%2C%22source%22%3A%22qq_55364042%22%7D

字符串类

        1.KMP,https://blog.csdn.net/qq_55364042/article/details/130266256?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22130266256%22%2C%22source%22%3A%22qq_55364042%22%7D

        2.manacher,网址后续补充

DFS

        深度优先,通常用来暴力

        1.迷宫,网址后续补充

        2.不同路径数,网址后续补充

动态规划:

        动态规划,记忆化,对dfs剪枝

        背包

                1.01背包,网址后续补充

                2.完全背包,网址后续补充

                3.多重背包,网址后续补充

                4.分组背包,网址后续补充

        线性

                1.最长上升子序列,网址后续补充

                2.最长公共子序列,网址后续补充

                3.最长公共上升子序列,网址后续补充

                4.最长不下降子序列,网址后续补充https://blog.csdn.net/qq_55364042/article/details/124614772?spm=1001.2014.3001.5501

        区间

                1.涂色,网址后续补充

                2.石子合并,网址后续补充

        树形

    

BFS

        广度优先在求最短距离时很有优势

       1.迷宫求最短路径

图论类

        拓扑排序

                求一个无向图有无闭环

                1.拓扑排序,网址后续补充

        并查集

                通常求两点之间有无连通性

                1.亲戚,网址后续补充

                2.网络分析.网址后续补充

                3.异或和.网址后续补充

        dijkstra

                对于无负权的图,求距原点最短路径

        Spfa

                对有负权的图,求距原点最短路径

单调栈

        确实很多地方用到,通常会将一些遍历的时间复杂度降至O(n)

        1.最大子序和,网址后续补充

前缀

        前缀和可O(1)的求某范围的和

        1.求某一段的和,网址后续补充

        2.统计子矩阵,网址后续补充

        3.k倍区间

差分

        差分是前缀和的逆处理

        1.增减序列,网址后续补充

树类

        二叉树

        红黑树

        查找树(Trie)

        线段树

博弈论

        1,纸牌博弈,网址后续补充

        2.取石子游戏,网址后续补充

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自 在

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值