797. 所有可能的路径

Ideas

首先题目要求的所有可能的路径,所以这是一个搜索问题,要搜索所有的状态空间,所以应该用DFS。

我们从0节点出发,深入探索所有可能的下一步路线,直到到达 n - 1 节点或者达到一个曾经已经访问过的节点。

Code

Python

from typing import List
from copy import deepcopyclass Solution:def allPathsSourceTarget(self, graph: List[List[int]]) -> List[List[int]]:def dfs(node, path):if node == n - 1:ans.append(deepcopy(path + [node]))returnfor next_node in graph[node]:if next_node not in path:path.append(node)dfs(next_node, path)path.pop()n = len(graph)ans = []dfs(0, [])return ansif __name__ == '__main__':print(Solution().allPathsSourceTarget(graph=[[4, 3, 1], [3, 2, 4], [3], [4], []]))

LeetCode Algorithm 797. 所有可能的路径相关推荐

  1. leetcode每日一题系列——797. 所有可能的路径

    797. 所有可能的路径 难度中等185收藏分享切换为英文接收动态反馈 给你一个有 n 个节点的 有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序) 二维数 ...

  2. LeetCode 70爬楼梯71简化路径72编辑距离(dp)

    新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注这个潇洒青年一起飞,回 ...

  3. LeetCode Algorithm 剑指 Offer II 056. 二叉搜索树中两个节点之和

    剑指 Offer II 056. 二叉搜索树中两个节点之和 Ideas 这题有点类似一个组合题,首先是通过二叉树遍历得到一个序列,然后再通过LeetCode Algorithm 1. 两数之和的方法查 ...

  4. LeetCode Algorithm 9. 回文数

    9. 回文数 Ideas 算法:迭代 数据结构:一个变量就OK 思路: 首先负数肯定都不是回文数,所以遇到负数可以直接return false: 针对最后一位是0的情况,因为0不能作为开头,所以只要最 ...

  5. 797. 所有可能的路径

    797. 所有可能的路径 给你一个有 n 个节点的 有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序) 二维数组的第 i 个数组中的单元都表示有向图中 i ...

  6. 【LeetCode】【HOT】437. 路径总和 III(DFS)

    [LeetCode][HOT]437. 路径总和 III 文章目录 [LeetCode][HOT]437. 路径总和 III package hot;class TreeNode{int val;Tr ...

  7. [LeetCode]124. 二叉树中的最大路径和(java实现)递归

    [LeetCode]124. 二叉树中的最大路径和(java实现)递归 1. 题目 2. 读题(需要重点注意的东西) 3. 解法 4. 可能有帮助的前置习题 5. 所用到的数据结构与算法思想 6. 总 ...

  8. leetcode 797. All Paths From Source to Target | 797. 所有可能的路径(回溯法)

    题目 https://leetcode.com/problems/all-paths-from-source-to-target/ 题解 回溯,中规中矩,直接上代码. class Solution { ...

  9. LeetCode 797. 所有可能的路径(DFS)

    1. 题目 给一个有 n 个结点的有向无环图,找到所有从 0 到 n-1 的路径并输出(不要求按顺序) 二维数组的第 i 个数组中的单元都表示有向图中 i 号结点所能到达的下一些结点(译者注:有向图是 ...

最新文章

  1. excel中使用CORREL函数计算两个时间序列数据列之间的滚动相关性(Rolling correlations)、例如,计算两种商品销售额之间的3个月的滚动相关性
  2. Android LaunchMode
  3. 允许活动内容如脚本和activex控件
  4. MSSQL Server 导入/导出到远程服务器
  5. activeMq-2 高可用以及集群搭建
  6. 在路上(on the road)
  7. 玩转mini2440开发板之【在Ubuntu 14.04下编译安装tslib 1.4版本】
  8. delphi dxBarManager 的dxBarEdit 输入问题
  9. [你必须知道的.NET] 第二回:对抽象编程:接口和抽象类
  10. 传球游戏(洛谷-P1057)
  11. 力扣--260只出现一次的数字I-III
  12. 任务方案思考:文本分类篇
  13. GridView样式用代码来设置
  14. 街头篮球服务器位置,求街头篮球各个服务器IP地址
  15. (一)生成器详解——简单生成器
  16. OAuth2授权方式
  17. oracle羊毛,预言机(Oracle)简介和撸羊毛教程— 上篇
  18. Linux: systemd 启动代码分析
  19. CSS一篇文章搞懂系列6:超全的字体篇与背景设置内容,花里胡哨起来
  20. oracle工资第二高怎么查询,求各部门第二高的工资

热门文章

  1. c++设计模式:访问者模式(visitor模式)
  2. [Luogu 3258] JLOI2014 松鼠的新家
  3. [转帖]TLS 版本问题
  4. Unity 白猫操作小实例
  5. 将js文件打包进dll 方法3
  6. C# socket编程第三篇
  7. Oracle推出5TB磁带 成就EB级磁带库
  8. 和鸿蒙系统合作品牌,华为:明年将有超40家主流品牌、1亿台设备成为鸿蒙系统新入口...
  9. 数据框按行拼接_利用Python进行数据分析
  10. java如何调用网页_如何使用网页开发自己的app,在网页中的按钮与自己的java代码绑定来实现打电话即javascript代码调用java代码,和java代码来调用javascript代码...