你要開發一座金礦,地質勘測學家已經探明了這座金礦中的資源分布,並用大小為 m * n 的網格 grid 進行了標註。每個單元格中的整數就表示這一單元格中的**數量;如果該單元格是空的,那麼就是 0。
為了使收益最大化,礦工需要按以下規則來開採**:
每當礦工進入乙個單元,就會收集該單元格中的所有**。
礦工每次可以從當前位置向上下左右四個方向走。
每個單元格只能被開採(進入)一次。
不得開採(進入)**數目為 0 的單元格。
礦工可以從網格中 任意乙個 有**的單元格出發或者是停止。
示例 1:
輸入:grid = [[0,6,0],[5,8,7],[0,9,0]]
輸出:24
解釋:[[0,6,0],
[5,8,7],
[0,9,0]]
一種收集最多**的路線是:9 -> 8 -> 7。
示例 2:
輸入:grid = [[1,0,7],[2,0,6],[3,4,5],[0,3,0],[9,0,20]]
輸出:28
解釋:[[1,0,7],
[2,0,6],
[3,4,5],
[0,3,0],
[9,0,20]]
一種收集最多**的路線是:1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7。
1 <= grid.length, grid[i].length <= 15
0 <= grid[i][j] <= 100
最多 25 個單元格中有**。
解題思路: 從當前grid[x][y]!=0 的點開始遞迴,遞迴到邊界之外 後 判斷 路徑和 是否大於 ans ,如果大於 ans 的話,更新
ans
class solution ,,,};
int ans = 0;
int m,n;
bool judge(int x,int y)
vis[x][y] = false;
}int getmaximumgold(vector>& grid)
} return ans;
}};
Leetcode 1219 黃金礦工
你要開發一座金礦,地質勘測學家已經探明了這座金礦中的資源分布,並用大小為 m n 的網格 grid 進行了標註。每個單元格中的整數就表示這一單元格中的 數量 如果該單元格是空的,那麼就是 0。為了使收益最大化,礦工需要按以下規則來開採 每當礦工進入乙個單元,就會收集該單元格中的所有 礦工每次可以從當...
LeetCode 1219 黃金礦工
你要開發一座金礦,地質勘測學家已經探明了這座金礦中的資源分布,並用大小為 m n 的網格 grid 進行了標註。每個單元格中的整數就表示這一單元格中的 數量 如果該單元格是空的,那麼就是 0。為了使收益最大化,礦工需要按以下規則來開採 每當礦工進入乙個單元,就會收集該單元格中的所有 礦工每次可以從當...
leetcode1219 黃金礦工(回溯)
你要開發一座金礦,地質勘測學家已經探明了這座金礦中的資源分布,並用大小為 m n 的網格 grid 進行了標註。每個單元格中的整數就表示這一單元格中的 數量 如果該單元格是空的,那麼就是 0。為了使收益最大化,礦工需要按以下規則來開採 每當礦工進入乙個單元,就會收集該單元格中的所有 礦工每次可以從當...