Leetcode 1219 黄金矿工 暴力回溯

 

  回溯解法:

复制代码
    int an = 0;

    public final int getMaximumGold(int[][] grid) {
        for (int i = 0; i < grid.length; i++) {
            for (int j = 0; j < grid[0].length; j++) {
                getMaximumGold(grid, i, j, 0);
            }
        }
        return an;
    }

    public final void getMaximumGold(int[][] grid, int x, int y, int sum) {
        if (x >= grid.length || x < 0 || y >= grid[0].length || y < 0 || grid[x][y] == 0 || grid[x][y] == -1) {
            an = Math.max(an, sum);
            return;
        }
        int current = grid[x][y];
        int currentSum = sum + current;
        grid[x][y] = -1;
        getMaximumGold(grid, x + 1, y, currentSum);
        getMaximumGold(grid, x - 1, y, currentSum);
        getMaximumGold(grid, x, y + 1, currentSum);
        getMaximumGold(grid, x, y - 1, currentSum);
        grid[x][y] = current;
    }
复制代码

 

 

  

posted @   牛有肉  阅读(213)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示