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.mzph.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:…