第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在 Go 中回溯以查找有向無(wú)環(huán)圖中的所有路徑,為解切片分配路徑時(shí)出現(xiàn)問(wèn)題

在 Go 中回溯以查找有向無(wú)環(huán)圖中的所有路徑,為解切片分配路徑時(shí)出現(xiàn)問(wèn)題

Go
ibeautiful 2022-08-09 16:55:07
我正在嘗試在Go中使用Leetcode 747。問(wèn)題摘要:給定一個(gè)有向無(wú)環(huán)圖 (DAG),其中包含從 0 到 n - 1 的 n 個(gè)節(jié)點(diǎn),找到從節(jié)點(diǎn) 0 到節(jié)點(diǎn) n - 1 的所有可能的路徑,并按任意順序返回它們。圖給出如下:graph[i]是您可以從節(jié)點(diǎn)i訪問(wèn)的所有節(jié)點(diǎn)的列表(即,從節(jié)點(diǎn)i到節(jié)點(diǎn)圖[i][j]有一個(gè)有向邊)。到目前為止,這是我的解決方案:func allPathsSourceTarget(graph [][]int) [][]int {    allSolutions := [][]int{}    target := len(graph) - 1    isSolution := func(current int) bool {        return current == target    }    processSolution := func(solution []int) {        allSolutions = append(allSolutions, solution)    }    var backtrack func(currentPath []int)    backtrack = func(a []int) {        currentNode := a[len(a)-1]        if isSolution(currentNode) {            processSolution(a)        } else {            candidates := graph[currentNode]            for _, c := range candidates {                a = append(a, c)                backtrack(a)                a = a[:len(a)-1]            }        }    }    backtrack([]int{0})    return allSolutions}它傳遞7/30輸入,但隨后在此輸入上失敗。其預(yù)期輸出為 。[[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]]我認(rèn)為問(wèn)題在于如何將每個(gè)結(jié)果附加到切片。如果我每次都記錄進(jìn)來(lái)的解決方案,這是預(yù)期的,但它似乎會(huì)改變已經(jīng)添加的解決方案。allSolutions如果我將日志添加到函數(shù)中,對(duì)于上述輸入,這是輸出:allSolutionsSolution:[0 4]New allSolutions:[[0 4]]Solution:[0 3 4]New allSolutions:[[0 3] [0 3 4]]Solution:[0 1 3 4]New allSolutions:[[0 1] [0 3 4] [0 1 3 4]]Solution:[0 1 2 3 4]New allSolutions:[[0 1] [0 3 4] [0 1 2 3] [0 1 2 3 4]]Solution:[0 1 4]New allSolutions:[[0 1] [0 3 4] [0 1 4 3] [0 1 2 3 4] [0 1 4]]我很想知道為什么會(huì)發(fā)生這種情況。它是否與從更高范圍修改變量有關(guān)?
查看完整描述

1 回答

?
繁星點(diǎn)點(diǎn)滴滴

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊

processSolution應(yīng)該復(fù)制其參數(shù)。否則,繼續(xù)改變它傳入的切片,從而導(dǎo)致您看到的損壞。backtrack



查看完整回答
反對(duì) 回復(fù) 2022-08-09
  • 1 回答
  • 0 關(guān)注
  • 210 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)