所有可能的路径

摘要:
注意:有向图是有方向的,也就是说,如果→ 如果指定了b,则不能从b开始→ 一

题目链接:https://leetcode-cn.com/problems/all-paths-from-source-to-target
题目描述:

给你一个有 n 个节点的 有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序)
二维数组的第 i 个数组中的单元都表示有向图中 i 号节点所能到达的下一些节点,空就是没有下一个结点了。
译者注:有向图是有方向的,即规定了 a→b 你就不能从 b→a 。
所有可能的路径第1张
所有可能的路径第2张
所有可能的路径第3张

题解:

class Solution {
public:
    vector<vector<int>> ans;
   
    vector<vector<int>> allPathsSourceTarget(vector<vector<int>>& graph) {
        vector<int> path(1, 0);
        trackingBack(0, graph.size(), graph, path);
        return ans;
    }

    void trackingBack(int cur, int n, vector<vector<int>>& graph, vector<int> &curpath)
    {
        if(cur == n - 1)
        {
            ans.push_back(curpath);
            return;
        }
        for(auto node: graph[cur])
        {
            curpath.push_back(node);
            trackingBack(node, n, graph, curpath);
            curpath.pop_back();
        }
       
    }
};

免责声明:文章转载自《所有可能的路径》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python设计模式Codeforces 787下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

堆积木----vector防止内存超限

蒜头君有 nn 块积木,编号分别为 11 到 nn。一开始,蒜头把第 ii 块积木放在位置 ii。蒜头君进行 mm 次操作,每次操作,蒜头把位置 bb 上的积木整体移动到位置 aa 上面。比如 11 位置的积木是 11,22 位置的积木是 22,那么把位置 22 的积木移动到位置 11 后,位置 11 上的积木从下到上依次为 1,21,2。 输入格式 第...

c++STL之heap(堆)

1、误区! 1、堆排序排完后的堆和大顶堆、小顶堆不是一个概念!2、堆分为大顶堆和小顶堆,即要么大顶堆(大根堆/最大堆),要么小顶堆。3、对于堆,堆的根节点一定是堆中所有节点的最大值或者最小值。4、大顶堆只是说这个堆总每一个节点满足:每一个节点大于或者等于其左右娃。并非这个堆一定是从大到小的序列。5、所以才必须要有堆排序呀!堆排序排完了之后的,才一定是一个有...

diedaiqi

转自:https://www.cnblogs.com/maluning/p/8570717.html https://www.cnblogs.com/ShaneZhang/p/4249173.html 正文 迭代器是一种检查容器内元素并遍历元素的数据类型。C++更趋向于使用迭代器而不是下标操作,因为标准库为每一种标准容器(如vector)定义了一种迭代器类...

二维vector的使用

    和数组一样,数组有二维的数组,vector也有二维的vector。下面就介绍一下二维vector的使用方法。     一般声明初始化二维vector有三种方法     (1) vector< vector<int> > v(n,vector<int>(m));   //在声明的时候就一次性指定vector内外层的...

关于Vector CANoe的讨论

默认排序​ 踩猫尾巴 汽车电子攻城狮 27 人赞同了该回答 好像是很久以前的问题啊,为什么会现在收到邀请。 我觉得  @lijuqqkiko  介绍的足够啦。我再额外发散一点吧。 目前在CAN总线测试和仿真领域,我认为VECTOR家的产品最不可替代的因素是品牌认可度。具体表现在当遇到一个棘手的现象,开始怀疑环境和工具是否有问题时,很可...

leetcode 36 有效的数独 哈希表 unordered_set unordersd_map 保存状态 leetcode 37 解数独

leetcode 36 感觉就是遍历。 保存好状态,就是各行各列还有各分区divide的情况 用数组做。 空间小时间大 class Solution { public: bool isValidSudoku(vector<vector<char>>& board) { int row[9][9]={...