修改第二题的代码 package main import "fmt" func getMaximumResource(grid [][]int) int { // 应该是dfs M := -1 << 10 res := 0 var dfs func(i, j int) visited := make([][]int, len(grid)) for i := 0; i < len(grid); i++ { visited[i] = make([]int, len(grid[0])) } dfs = func(i, j int) { // 边界 if i < 0 || j < 0 || i >= len(grid) || j >= len(grid[0]) { return } // 访问过 或 当前为 0 if grid[i][j] == 0 || visited[i][j] == 1 { return } visited[i][j] = 1 res += grid[i][j] M = max(M, res) // 四个方向 dfs(i+1, j) dfs(i-1, j) dfs(i, j+1) dfs(i, j-1) res -= grid[i][j] visited[i][j] = 0 return } for i := 0; i < len(grid); i++ { for j := 0; j < len(grid[0]); j++ { if grid[i][j] != 0 { dfs(i, j) } } } return M } func max(a, b int) int { if a > b { return a } return b } func main() { grid := [][]int{{0, 6, 0}, {5, 8, 7}, {0, 9, 0}} fmt.Println(getMaximumResource(grid)) }
点赞 评论

相关推荐

zhiyog:才疏学浅,只会说一句,太diao了
投递字节跳动等公司6个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客网
牛客企业服务