leetcode1219. 黃金礦工(回溯)

你要開發一座金礦,地質勘測學家已經探明了這座金礦中的資源分布,并用大小為 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。

代碼

class Solution {int[][] dir=new int[][]{{-1,0},{1,0},{0,-1},{0,1}};int ans =0;boolean[][] check;public int getMaximumGold(int[][] grid) {int n=grid.length,m=grid[0].length;check=new boolean[n][m];for(int i=0;i<n;i++)//從不同起點出發for(int j=0;j<m;j++){if(grid[i][j]!=0)getMax(grid,0,i,j);}return ans;}public void getMax(int[][] grid,int sum,int x,int y) {check[x][y]=true;//標記for(int[] d:dir)//可到達的位置{int nextX=x+d[0],nextY=y+d[1];if(nextX<0||nextY<0||nextX>=grid.length||nextY>=grid[0].length||check[nextX][nextY]||grid[nextX][nextY]==0)//無路可走{ans= Math.max(ans,sum+grid[x][y]);continue;}getMax(grid,sum+grid[x][y],nextX,nextY);}check[x][y]=false;}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/393931.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/393931.shtml
英文地址,請注明出處:http://en.pswp.cn/news/393931.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【無刪減】Python老司機收藏夾的17個國外免費學習網站

用Python編寫代碼一點都不難&#xff0c;事實上它一直被贊譽為最容易學的編程語言。如果你準備學習web開發&#xff0c; Python是一個不錯的開始&#xff0c;甚至想做游戲的話&#xff0c;用Python來開發游戲的資源也有很多。這是快速學習這門語言的途徑之一。許多程序員都把Py…

iframe vue 前進 后退_vue常見面試題

1、說說你對 SPA 單頁面的理解&#xff0c;它的優缺點分別是什么&#xff1f;SPA&#xff08; single-page application &#xff09;僅在 Web 頁面初始化時加載相應的 HTML、JavaScript 和 CSS。一旦頁面加載完成&#xff0c;SPA 不會因為用戶的操作而進行頁面的重新加載或跳轉…

C#編寫運行在Linux環境下的采用Mediainfo來獲取多媒體文件信息的代碼

C#編寫運行在Linux環境下的采用Mediainfo來獲取多媒體文件信息的代碼 原文:C#編寫運行在Linux環境下的采用Mediainfo來獲取多媒體文件信息的代碼項目開始設計的是運行在windows下&#xff0c;所以一開始采用的是windows服務模式來獲取多媒體文件信息&#xff0c;后來要求調整為…

如何用chrome擴展將網頁變成黑底白字,用以保護視力

不知道有沒有科學依據&#xff0c;自己感覺黑底白字對視力好些&#xff0c;于是動手加個chrome擴展&#xff1a; 第一步&#xff1a;建個文件夾&#xff0c;名稱比如叫changeColor; 第二步&#xff1a;在changeColor文件夾中建三個文件&#xff1a;manifest.json 、 backgrou…

從零學習機器學習_機器學習:如何從零變英雄

從零學習機器學習以“為什么&#xff1f;”開頭 并以“我準備好了&#xff01;”結尾 (Start with “Why?” and end with “I’m ready!”) If your understanding of A.I. and Machine Learning is a big question mark, then this is the blog post for you. Here, I gradu…

sqoop動態分區導入mysql,使用sqoop import從mysql往hive含分區表中導入數據的一些注意事項...

先看下面這條語句&#xff0c;它實現的功能是將特定日期的數據從mysql表中直接導入hive$ sqoop import \--connect jdbc:mysql://192.168.xx.xx:3306/db_name?useSSLfalse \--username xxx --password xxxxxx \--query "select d.id, d.callsign, d.sobt from t_flight_b…

leetcode面試題 08.04. 冪集(遞歸)

冪集。編寫一種方法&#xff0c;返回某集合的所有子集。集合中不包含重復的元素。 說明&#xff1a;解集不能包含重復的子集。 示例: 輸入&#xff1a; nums [1,2,3] 輸出&#xff1a; [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 代碼 class Solution {List&l…

gatsby_我如何使用Gatsby和Netlify建立博客

gatsbyby Pav Sidhu通過帕夫西杜(Pav Sidhu) 我如何使用Gatsby和Netlify建立博客 (How I Built My Blog Using Gatsby and Netlify) 您能說出更具標志性的二人??組合嗎&#xff1f; &#xff1f; (Can you name a more iconic duo? ?) Years ago, whenever I built a stat…

交叉熵與相對熵

熵的本質是香農信息量()的期望。 現有關于樣本集的2個概率分布p和q&#xff0c;其中p為真實分布&#xff0c;q非真實分布。 按照真實分布p來衡量識別一個樣本的所需要的編碼長度的期望(即平均編碼長度)為&#xff1a;H(p)。 如果使用錯誤分布q來表示來自真實分布p的平均編碼長度…

menustrip

在對應菜單上點擊鼠標右鍵&#xff0c;插入&#xff0c;SEPARATOR 就可以了&#xff0c;然后可以選中拖動位置。轉載于:https://www.cnblogs.com/Echo529/p/6382302.html

直接排序

題目&#xff1a;使用直接排序法將下列數組&#xff08;從小到大排序&#xff09;思路&#xff1a;第一次&#xff1a;使用索引值為0的元素與其他位置的元素挨個比較一次&#xff0c;如果發現比0號索引值的元素小的&#xff0c;那么交換位置&#xff0c;第一輪下來最小值被放在…

leetcode78. 子集(回溯)

給定一組不含重復元素的整數數組 nums&#xff0c;返回該數組所有可能的子集&#xff08;冪集&#xff09;。 說明&#xff1a;解集不能包含重復的子集。 示例: 輸入: nums [1,2,3] 輸出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 代碼 class Solution {pub…

php字符串綜合作業,0418php字符串的操作

實例字符串函數(一):長度計算$siteName php中文網;//獲取內部字符編碼集$encoding mb_internal_encoding();//1、strlen($str):獲取字節表示的字符串長度//utf8模式下&#xff0c;一個中文字符用三個字節表示echo strlen($siteName),; //12//2、mb_strlen($str,$encoding)&…

如何處理JavaScript中的事件處理(示例和全部)

In this blog, I will try to make clear the fundamentals of the event handling mechanism in JavaScript, without the help of any external library like Jquery/React/Vue.在此博客中&#xff0c;我將嘗試在沒有任何外部庫(例如Jquery / React / Vue)的幫助下闡明JavaSc…

js 圖片預覽

//顯示選擇的圖片縮略圖function showImage(inputId,imageConfirmId,imageConfi){var imagedocument.getElementById(inputId).value.toLowerCase();if(!image){return;}var fileExtendimage.substr(image.lastIndexOf(".", image.length)1);if(!(fileExtend"jp…

什么是copyonwrite容器

2019獨角獸企業重金招聘Python工程師標準>>> CopyOnWrite容器即寫時復制的容器。通俗的理解是當往一個容器添加元素的時候&#xff0c;不直接往當前容器添加&#xff0c;而是先將當前容器進行Copy&#xff0c;復制出一個新的容器&#xff0c;然后新的容器里添加元素…

hystrix 源碼 線程池隔離_Hystrix源碼學習--線程池隔離

分析你的系統你所認識的分布式系統&#xff0c;哪些是可以進行垂直拆分的&#xff1f;拆分之后系統之間的依賴如何梳理&#xff1f;系統異構之后的穩定性調用如何保證&#xff1f;這些都是可能在分布式場景中面臨的問題。說個比較常見的問題&#xff0c;大家都知道秒殺系統&…

P2341 [HAOI2006]受歡迎的牛 強連通

題目背景 本題測試數據已修復。 題目描述 每頭奶牛都夢想成為牛棚里的明星。被所有奶牛喜歡的奶牛就是一頭明星奶牛。所有奶 牛都是自戀狂&#xff0c;每頭奶牛總是喜歡自己的。奶牛之間的“喜歡”是可以傳遞的——如果A喜 歡B&#xff0c;B喜歡C&#xff0c;那么A也喜歡C。牛欄…

oracle em agent,ORACLE?11G?EM?配置命令及問題處理

11g裝好以后&#xff0c;一直未用EM,昨天晚上和今天晚上終于抽時間把EM啟動起來了&#xff0c;還遇到一點小問題&#xff0c;1.EM配置的一些命令創建一個EM資料庫emca -repos create重建一個EM資料庫emca -reposrecreate--------這個很主要&#xff0c;一般第一次不成功創建的時…

leetcode89. 格雷編碼

格雷編碼是一個二進制數字系統&#xff0c;在該系統中&#xff0c;兩個連續的數值僅有一個位數的差異。 給定一個代表編碼總位數的非負整數 n&#xff0c;打印其格雷編碼序列。即使有多個不同答案&#xff0c;你也只需要返回其中一種。 格雷編碼序列必須以 0 開頭。 示例 1:…