算法
ADRUODUAN
这个作者很懒,什么都没留下…
展开
-
递归算法的快速幂运算
tip:面试中遇到能否优化递归算法的问题,简要回答了递归算法,动态规划以及时间和空间的优化,再问到能否使用矩阵运算时有点懵,网上查了一下矩阵的快速幂运算算法,记录一下。 问题描述:在一个n阶的台阶,一次可以走一阶或者三阶,最后到顶端一共有多少种方式。 此问题的递推关系显而易见,假设走到第i阶时一共有f(i)种方式,则f(i) = f(i-1) + f(i-3),i4 完整描述: 对于f(n) = f(n-1) + f(n-3), f(n-1) =...原创 2021-07-09 23:35:32 · 301 阅读 · 3 评论 -
拓扑排序DFS+BFS
问题描述:如下图所示,在有向图中,如何将所有节点排序,使得节点满足其在下一个节点之前,可能存在多种解,只需要返回一个即可。 DFS: 遍历节点过程中,将节点化为三种状态:在搜索中,未搜索,已搜索。每次取未搜索过的节点,依次沿着其下一个节点,深度优先搜索,直到没有下一个节点。之后将已搜索过的节点添加到栈中。 tip: 当有向图存在环时,下一个节点状态为在搜索中,此时停止遍历。 import java.util.ArrayList; import java.util.Deque; import j.原创 2021-07-17 12:44:27 · 112 阅读 · 0 评论