
算法
usualheart
这个作者很懒,什么都没留下…
展开
-
深度优先搜索两种实现方法java模板 递归和栈以及使用栈的潜在问题
有两种实现 DFS 的方法。dfs递归模版第一种方法是进行递归:boolean DFS(Node cur, Node target, Set<Node> visited) { return true if cur is target; for (next : each neighbor of cur) { if (next is not in visited) { add next to visted; ret原创 2020-08-19 16:05:36 · 895 阅读 · 0 评论 -
算法题中将二维数据合并为一维 来解决二维数据无法放入集合的问题 附将2个int合并为1个long的java代码
二维数据无法直接放进集合,通过集合在短时间内判断是否存在。可以将二维数据合并为一维,然后对这个一维数据进行处理比如可以将两个int数据合并为一个long数据比如对于多个坐标(x,y),无法直接加入集合,而将坐标转化为long之后就可以放入集合,并借助集合的特性在O(1)时间内判断某坐标是否存在。相关题目874. 模拟行走机器人https://leetcode-cn.com/problems/walking-robot-simulation/这道题通过合并坐标为long来快速判断坐标是否碰到障原创 2020-08-10 20:16:50 · 262 阅读 · 0 评论 -
图类算法题使用邻接矩阵还是邻接链表——邻接矩阵和邻接链表的优缺点以及初始化代码
邻接矩阵的优缺点优点判断是否邻接效率高缺点在稀疏的情况耗费空间构造的过程耗费时间,为O(N^2)在查找某节点的邻接对象时耗费时间,为O(N^2),且需要一个一个地判断邻接链表的优缺点优点在查找某节点的邻接对象时比较快,为O(|E|)构造过程比较快,为O(|E|)占用的空间相对较小缺点判断两个节点是否邻接比较耗费时间,为O(|E|)实际题目情况1042. 不邻接植花https://leetcode-cn.com/problems/flower-planting-原创 2020-08-04 19:55:18 · 1367 阅读 · 0 评论