- 博客(6)
- 收藏
- 关注
原创 广度优先搜索(BFS)算法详解
广度优先搜索(Breadth-First Search,BFS)是一种用于遍历或搜索树或图的算法。它从根节点(或任意节点)开始,先访问所有相邻节点,然后再依次访问这些相邻节点的相邻节点,以此类推。
2025-03-27 13:59:39
233
原创 深度优先搜素(dfs)
深度优先搜索(Depth-First Search,DFS)是一种用于遍历或搜索树或图的算法。它沿着树的深度遍历树的节点,尽可能深地搜索树的分支。
2025-03-27 13:53:02
223
原创 广度优先搜索(Breadth-First Search,简称BFS)
广度优先搜索(Breadth-First Search,简称BFS)是一种遍历或搜索树和图的算法,也称为宽度优先搜索,BFS算法从图的某个节点开始,依次对其所有相邻节点进行探索和遍历,然后再对这些相邻节点的相邻节点进行探索,直到遍历完所有的节点。BFS算法使用队列来辅助实现,将起始节点放入队列中,然后依次取出队列中的节点,访问其相邻节点,并将其加入队列。这样可以保证从起始节点出发,依次按照距离顺序遍历节点。BFS常用于寻找最短路径,因为它按照从起点到每个节点的距离来探索节点。
2025-03-03 17:42:40
621
原创 01 串题解
可以先找出每位上的数,最大的数就是最少的数的个数。因为我是从个位开始找的,所以可以从后往前进行枚举,若这一位上的数大于 0,则输出 1,然后还要记录一下第一个 1 出现在哪一位,如果之后的数小于这个标记的位置,并且这个数等于 0,则输出 0。给出一个数 n,你需要将 n 写成若干个数的和,其中每个数的十进制表示中仅包含 0 和 1。一行 一个数 n(1 ≤ n ≤ 106)最少的数的个数,并给出一种方案。问最少需要多少个数。
2024-12-27 16:53:20
182
原创 动态规划(dp)
现在开始分析倒数第二行的每一个数,现分析数字2,2可以和最后一行4相加,也可以和最后一行的5相加,但是很显然和5相加要更大一点,结果为7,我们此时就可以将7保存起来,然后分析数字7,7可以和最后一行的5相加,也可以和最后一行的2相加,很显然和5相加更大,结果为12,因此我们将12保存起来。那么可以用n方的时间复杂度完成计算。递归函数有n个参数,就定义一个n维的数组,数组的下标是递归函数参数的取值范围,数组元素的值是递归函数的返回值,这样就可以从边界值开始, 逐步填充数组,相当于计算递归函数值的逆过程。
2024-12-24 17:56:48
727
原创 二维前缀和
类比一维前缀和,因为我们从左到右在计算a的时候已经知道了a的值,所以同理,我们从左上向右下在计算M的时候已经知道了它右上所有点的前缀和,也就是知道M、M和M的值,那么现在考虑为什么要做如上的运算。二维前缀和,建立在一维前缀和之上,我们要求一个矩阵内一个任意的子矩阵的数的和,我们就可以用二维前缀和。而我们已经预处理好了前缀和,但是我们还不直接知道矩形的权值和,那么我们考虑怎么减去那部分。这样,我们就成功的得到了需要求和的部分的值。时间复杂度:O,与一维中的O预处理同理。时间复杂度:O,与一维前缀和的O同理。
2024-11-14 13:53:41
176
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人