ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

LeetCode 797. 所有可能的路径

2020-06-26 18:55:10  阅读:268  来源: 互联网

标签:797 index temp graph 路径 List res visited LeetCode


题目链接

797. 所有可能的路径

题目分析

这个题,给了一个有向图的背景,然后要求我们把所有满足条件的路径都输出出来,看到返回值上的List<List>,刷题量比较多的人都知道这种一般都是回溯法解决。

代码实现

class Solution {
    public List<List<Integer>> allPathsSourceTarget(int[][] graph) {
        boolean[] visited = new boolean[graph.length];
        List<List<Integer>> res = new ArrayList<>();
        List<Integer> temp = new ArrayList<>();
        temp.add(0);
        backTracking(graph,visited,0,res,temp);
        return res;
    }

    public void backTracking(int[][] graph, boolean[] visited, int index, List<List<Integer>> res, List<Integer> temp){
        if(visited[index]){
            return;
        }
        if(graph[index].length == 0){
            res.add(new ArrayList<>(temp));
            return;
        }
        visited[index] = true;
        for(int i = 0; i < graph[index].length; i++){
            temp.add(graph[index][i]);
            backTracking(graph,visited,graph[index][i],res,temp);
            temp.remove(temp.size()-1);
        }
//记得把visited状态还原
        visited[index] = false;
    }
}

我这里还是使用到了visited数组,我看到评论区中有说连这个数组都不用开的。说明自己还是熟练呀

标签:797,index,temp,graph,路径,List,res,visited,LeetCode
来源: https://www.cnblogs.com/ZJPaang/p/13195975.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有