国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

每天一道leetcode:797. 所有可能的路徑(圖論&中等&深度優(yōu)先遍歷)

這篇具有很好參考價值的文章主要介紹了每天一道leetcode:797. 所有可能的路徑(圖論&中等&深度優(yōu)先遍歷)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

今日份題目:

給你一個有 n 個節(jié)點的 有向無環(huán)圖(DAG),請你找出所有從節(jié)點 0 到節(jié)點 n-1 的路徑并輸出(不要求按特定順序

graph[i] 是一個從節(jié)點 i 可以訪問的所有節(jié)點的列表(即從節(jié)點 i 到節(jié)點 graph[i][j]存在一條有向邊)。

示例1

每天一道leetcode:797. 所有可能的路徑(圖論&中等&深度優(yōu)先遍歷),圖論,深度優(yōu)先,leetcode,圖論,算法,職場和發(fā)展,c++,數(shù)據(jù)結(jié)構(gòu)

輸入:graph = [[1,2],[3],[3],[]]
輸出:[[0,1,3],[0,2,3]]
解釋:有兩條路徑 0 -> 1 -> 3 和 0 -> 2 -> 3

示例2

每天一道leetcode:797. 所有可能的路徑(圖論&中等&深度優(yōu)先遍歷),圖論,深度優(yōu)先,leetcode,圖論,算法,職場和發(fā)展,c++,數(shù)據(jù)結(jié)構(gòu)

輸入:graph = [[4,3,1],[3,2,4],[3],[4],[]]
輸出:[[0,4],[0,3,4],[0,1,3,4],[0,1,2,3,4],[0,1,4]]

提示

  • n == graph.length

  • 2 <= n <= 15

  • 0 <= graph[i][j] < n

  • graph[i][j] != i(即不存在自環(huán))

  • graph[i] 中的所有元素 互不相同

  • 保證輸入為 有向無環(huán)圖(DAG)

題目思路

使用深度優(yōu)先遍歷,用p數(shù)組記錄路徑。遞歸遍歷結(jié)束條件就是到達(dá)結(jié)尾,所以需要一個int數(shù)據(jù)記錄當(dāng)前所在位置,如果到結(jié)尾了就返回。

代碼

class Solution 
{
public:
    vector<vector<int>> ans;
    vector<int> p;

    void dfs(vector<vector<int>>& graph, int x, int n) 
    { //x用來標(biāo)記當(dāng)前所在位置,n標(biāo)記結(jié)尾所在位置
        if(x==n) //到結(jié)尾了,返回
        {
            ans.push_back(p);
            return;
        }
        for(auto& y:graph[x]) //遍歷臨界節(jié)點
        {
            p.push_back(y);
            dfs(graph,y,n);
            p.pop_back();//還原隊列,確保其他dfs操作的正確進行
        }
    }

    vector<vector<int>> allPathsSourceTarget(vector<vector<int>>& graph) 
    {
        p.push_back(0);
        dfs(graph,0,graph.size()-1);
        return ans;
    }
};

提交結(jié)果

每天一道leetcode:797. 所有可能的路徑(圖論&中等&深度優(yōu)先遍歷),圖論,深度優(yōu)先,leetcode,圖論,算法,職場和發(fā)展,c++,數(shù)據(jù)結(jié)構(gòu)

?歡迎大家在評論區(qū)討論,如有不懂的代碼部分,歡迎在評論區(qū)留言!文章來源地址http://www.zghlxwxcb.cn/news/detail-650743.html

到了這里,關(guān)于每天一道leetcode:797. 所有可能的路徑(圖論&中等&深度優(yōu)先遍歷)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 每天一道leetcode:934. 最短的橋(圖論&中等&廣度優(yōu)先遍歷)

    每天一道leetcode:934. 最短的橋(圖論&中等&廣度優(yōu)先遍歷)

    給你一個大小為 n x n 的二元矩陣 grid ,其中 1 表示陸地, 0 表示水域。 島 是由四面相連的 1 形成的一個最大組,即不會與非組內(nèi)的任何其他 1 相連。 grid 中 恰好存在兩座島 。 你可以將任意數(shù)量的 0 變?yōu)?1 ,以使兩座島連接起來,變成 一座島 。 返回必須翻轉(zhuǎn)的 0 的最小數(shù)

    2024年02月12日
    瀏覽(22)
  • 每天一道leetcode:433. 最小基因變化(圖論&中等&廣度優(yōu)先遍歷)

    每天一道leetcode:433. 最小基因變化(圖論&中等&廣度優(yōu)先遍歷)

    基因序列可以表示為一條由 8 個字符組成的字符串,其中每個字符都是 \\\'A\\\' 、 \\\'C\\\' 、 \\\'G\\\' 和 \\\'T\\\' 之一。 假設(shè)我們需要調(diào)查從基因序列 start 變?yōu)?end 所發(fā)生的基因變化。一次基因變化就意味著這個基因序列中的一個字符發(fā)生了變化。 例如, \\\"AACCGGTT\\\" -- \\\"AACCGGTA\\\" 就是一次基因變化。

    2024年02月12日
    瀏覽(26)
  • 每天一道leetcode:1306. 跳躍游戲 III(圖論&中等&廣度優(yōu)先遍歷)

    每天一道leetcode:1306. 跳躍游戲 III(圖論&中等&廣度優(yōu)先遍歷)

    這里有一個非負(fù)整數(shù)數(shù)組 `arr`,你最開始位于該數(shù)組的起始下標(biāo) `start` 處。當(dāng)你位于下標(biāo) `i` 處時,你可以跳到 `i + arr[i]` 或者 `i - arr[i]`。 請你判斷自己是否能夠跳到對應(yīng)元素值為 0 的 **任一** 下標(biāo)處。 注意,不管是什么情況下,你都無法跳到數(shù)組之外。 ``` 輸入:arr = [4,

    2024年02月12日
    瀏覽(26)
  • 代碼隨想錄圖論 第一天 | 797.所有可能的路徑 200. 島嶼數(shù)量

    代碼隨想錄圖論 第一天 | 797.所有可能的路徑 200. 島嶼數(shù)量 一、797.所有可能的路徑 題目鏈接:https://leetcode.cn/problems/all-paths-from-source-to-target/ 思路:求從0到n-1的所有路徑,終止條件是當(dāng)前節(jié)點為n-1。本題圖的結(jié)構(gòu)是group[][],group[x]表示x節(jié)點所能到達(dá)的所有節(jié)點的集合,深度

    2024年02月08日
    瀏覽(32)
  • 每天一道leetcode:1129. 顏色交替的最短路徑(圖論&中等&廣度優(yōu)先遍歷)

    每天一道leetcode:1129. 顏色交替的最短路徑(圖論&中等&廣度優(yōu)先遍歷)

    給定一個整數(shù) n ,即有向圖中的節(jié)點數(shù),其中節(jié)點標(biāo)記為 0 到 n - 1 。圖中的每條邊為紅色或者藍(lán)色,并且可能存在自環(huán)或平行邊。 給定兩個數(shù)組 redEdges 和 blueEdges ,其中: redEdges[i] = [ai, bi] 表示圖中存在一條從節(jié)點 ai 到節(jié)點 bi 的紅色有向邊, blueEdges[j] = [uj, vj] 表示圖中存

    2024年02月13日
    瀏覽(21)
  • 每天一道leetcode:1926. 迷宮中離入口最近的出口(圖論&中等&廣度優(yōu)先遍歷)

    每天一道leetcode:1926. 迷宮中離入口最近的出口(圖論&中等&廣度優(yōu)先遍歷)

    給你一個 m x n 的迷宮矩陣 maze ( 下標(biāo)從 0 開始 ),矩陣中有空格子(用 \\\'.\\\' 表示)和墻(用 \\\'+\\\' 表示)。同時給你迷宮的入口 entrance ,用 entrance = [entrancerow, entrancecol] 表示你一開始所在格子的行和列。 每一步操作,你可以往 上 , 下 , 左 或者 右 移動一個格子。你不能進

    2024年02月12日
    瀏覽(24)
  • 圖論算法|深度優(yōu)先搜索理論基礎(chǔ)|797.所有可能的路徑|廣度優(yōu)先搜索BFS理論基礎(chǔ)|200. 島嶼數(shù)量

    圖論算法|深度優(yōu)先搜索理論基礎(chǔ)|797.所有可能的路徑|廣度優(yōu)先搜索BFS理論基礎(chǔ)|200. 島嶼數(shù)量

    dfs是可一個方向去搜,不到黃河不回頭,直到遇到絕境了,搜不下去了,在換方向(換方向的過程就涉及到了回溯)。 遞歸和回溯是相輔相成的 https://leetcode.cn/problems/all-paths-from-source-to-target/ 有向無環(huán)圖(DAG): 有環(huán)無向圖是指在圖中存在至少一個環(huán)(Cycle)的無向圖。環(huán)是

    2024年02月15日
    瀏覽(24)
  • 每天一道leetcode:646. 最長數(shù)對鏈(動態(tài)規(guī)劃&中等)

    每天一道leetcode:646. 最長數(shù)對鏈(動態(tài)規(guī)劃&中等)

    給你一個由 n 個數(shù)對組成的數(shù)對數(shù)組 pairs ,其中 pairs[i] = [lefti, righti] 且 lefti righti 。 現(xiàn)在,我們定義一種 跟隨 關(guān)系,當(dāng)且僅當(dāng) b c 時,數(shù)對 p2 = [c, d] 才可以跟在 p1 = [a, b] 后面。我們用這種形式來構(gòu)造 數(shù)對鏈 。 找出并返回能夠形成的 最長數(shù)對鏈的長度 。 你不需要用到所

    2024年02月12日
    瀏覽(18)
  • 每天一道leetcode:516. 最長回文子序列(動態(tài)規(guī)劃&中等)

    每天一道leetcode:516. 最長回文子序列(動態(tài)規(guī)劃&中等)

    給你一個字符串 s ,找出其中最長的回文子序列,并返回該序列的長度。 子序列定義為:不改變剩余字符順序的情況下,刪除某些字符或者不刪除任何字符形成的一個序列。 1 = s.length = 1000 s 僅由小寫英文字母組成 動態(tài)規(guī)劃 ,使用二維dp數(shù)組記錄[i,j]間的最大回文子序列長度

    2024年02月13日
    瀏覽(23)
  • 每天一道leetcode:劍指 Offer 64. 求1+2+…+n(中等&遞歸)

    每天一道leetcode:劍指 Offer 64. 求1+2+…+n(中等&遞歸)

    求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等及條件判斷語句(A?B:C)。 1 = n = 10000 使用遞歸,我們馬上的想法是: 或者: 但是題目要求不能出現(xiàn)if、A?B:C這樣的,所以,我們只能直接返回什么東西。返回什么?返回n。只不過n要進行自加

    2024年02月12日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包