当前位置:   article > 正文

leetcode | go | 第797题 | 所有可能的路径

leetcode | go | 第797题 | 所有可能的路径

所有可能的路径

go

解决思路

  1. n 设为 graph 的长度,即节点个数
  2. ans 设为二维 int 数组,path 设为初值为 0 的  int 数组
  3. dfs 没有参数也没有返回值
  4. 如果 path 的最后一个值为 n-1,将 path 复制到新数组里然后加入 ans,return
  5. 遍历 path 的最后一个值的相邻节点,即 graph[path[len(path)-1](当前值为 site),将 site 加入 path,dfs(),然后回溯
  6. dfs();return ans
  7. 题解思路:(1)深度优先搜索

相关问题

  1. 好像有重复的路径,所以应该怎么去重呢
  2. 虽然不知道为什么用深度优先搜索是对的,广度优先搜索就会出现重复
  1. func allPathsSourceTarget(graph [][]int) [][]int {
  2. n:=len(graph)
  3. ans:=[][]int{}
  4. path:=[]int{0}
  5. var dfs func()
  6. dfs=func() {
  7. if path[len(path)-1]==n-1 {
  8. ans=append(ans,append([]int{},path...))
  9. return
  10. }
  11. for _,site:=range graph[path[len(path)-1]] {
  12. path=append(path,site)
  13. dfs()
  14. path=path[:len(path)-1]
  15. }
  16. }
  17. dfs()
  18. return ans
  19. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/558007
推荐阅读
相关标签
  

闽ICP备14008679号