1219. Path with Maximum Gold 給m*n的matrix 每個cell代表黃金的數量 可以從任何一個位置開始走 同一個位置不能重複走 遇到0就要停止 請問最多可以拿幾個黃金 思路: 這題沒什麼好講的 不過我需要p幣,只好來混一點字數 就dfs遍歷,並用visit matrix紀錄走過的地方 並記錄最大值 golang code : var n, m int func getMaximumGold(grid [][]int) int { n = len(grid) m = len(grid[0]) visit := make([][]bool, n) for i := 0; i < n; i++ { visit[i] = make([]bool, m) } maxsum := 0 for i := 0; i < n; i++ { for j := 0; j < m; j++ { if grid[i][j] != 0 { dfs(i, j, &visit, grid, 0, &maxsum) } } } return maxsum } func dfs(i, j int, visit *[][]bool, grid [][]int, sum int, maxsum *int) { if i > -1 && j > -1 && i < n && j < m && !(*visit)[i][j] && grid[i][j] != 0 { (*visit)[i][j] = true sum += grid[i][j] if sum > (*maxsum) { *maxsum = sum } dfs(i+1, j, visit, grid, sum, maxsum) dfs(i-1, j, visit, grid, sum, maxsum) dfs(i, j+1, visit, grid, sum, maxsum) dfs(i, j-1, visit, grid, sum, maxsum) sum -= grid[i][j] (*visit)[i][j] = false } } -- ※ 發信站: 批踢踢實業坊(ptt-website.tw), 來自: 111.82.19.201 (臺灣) ※ 文章網址: https://ptt-website.tw/Marginalman/M.1715696144.A.679
aioiwer318: 別卷了 05/14 22:16
SecondRun: 大師 05/14 22:27