题目

你要开发一座金矿,地质勘测学家已经探明了这座金矿中的资源分布,并用大小为 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 个单元格中有黄金。

解释和代码

第一眼感觉就是dfs

注意题意,可以从网格中 任意一个 有黄金的单元格出发或者是停止

没什么难度,就是直接模拟即可,注意边界

网上代码都差不多的样子

class Solution {public:int maxv = 0, tsum = 0;int dx[4] = {0, 0, 1, -1};int dy[4] = {1, -1, 0, 0};void dfs(int tx, int ty, vector<vector<int>>& grid) {if (tx < 0 || ty < 0 || tx >= grid.size() || ty >= grid[0].size() || grid[tx][ty] == 0) return ;int temp = grid[tx][ty];tsum += temp;maxv = max(maxv, tsum);grid[tx][ty] = 0;for (int i=0; i<4; i++) {int px = tx + dx[i];int py = ty + dy[i];dfs(px, py, grid);}grid[tx][ty] = temp;tsum -= temp;}int getMaximumGold(vector<vector<int>>& grid) {for (int i=0; i<grid.size(); i++) for (int j=0; j<grid[i].size(); j++) if (grid[i][j] != 0)dfs(i, j, grid);return maxv;}
};

力扣 1219黄金矿工相关推荐

  1. LeetCode:1219.黄金矿工(Java语言)

    不要自卑,去提升实力 互联网行业谁技术牛谁是爹 如果文章可以带给你能量,那是最好的事!请相信自己 加油o~ 1219.黄金矿工 你要开发一座金矿,地质勘测学家已经探明了这座金矿中的资源分布,并用大小为 ...

  2. LeetCode 1219. 黄金矿工(回溯)

    文章目录 1. 题目 2. 回溯DFS解题 1. 题目 你要开发一座金矿,地质勘测学家已经探明了这座金矿中的资源分布,并用大小为 m * n 的网格 grid 进行了标注.每个单元格中的整数就表示这一 ...

  3. Leetcode 1219.黄金矿工

    Time: 20191006 Type: Medium 题目描述 你要开发一座金矿,地质勘测学家已经探明了这座金矿中的资源分布,并用大小为 m * n 的网格 grid 进行了标注.每个单元格中的整数 ...

  4. leetcode每日一题1219. 黄金矿工 DFS深搜 暴力AC 正月初五祝大家财源广进~

  5. 力扣刷题全局变量WA,局部变量AC的问题

    力扣刷题全局变量WA,局部变量AC问题 题目 原因 题目 golang力扣leetcode 1219.黄金矿工 原因 今天在刷题的时候,遇到一个现象,本地跑测试全部通过,一提交就错错错,非常离谱 然后 ...

  6. 可爱宝宝力扣刷题集目录

    总述 编程菜鸟一枚!2020年7月,我仍然还是一个几乎不会码代码的菜鸟,(好多小伙伴应该从本科入学就开始了吧.哎,捂脸并逃走),不过从今年4月底刷了有一个多月,狂刷了300多倒(截止2020.6,8) ...

  7. 黄金矿工--回溯算法

    LeetCode 1219 黄金矿工 你要开发一座金矿,地质勘测学家已经探明了这座金矿中的资源分布,并用大小为 m * n 的网格 grid 进行了标注.每个单元格中的整数就表示这一单元格中的黄金数量 ...

  8. C++算法学习(力扣:402. 移掉K位数字)

    给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导零. 示例 1 : 输入: nu ...

  9. 力扣编程题-解法汇总

    一.力扣链接: 题库 - 力扣 (LeetCode) 全球极客挚爱的技术成长平台 备注:以后每个工作日从前往后刷一道题,然后再加一道每日新题.每天两道题. 二.模版: 标题: 力扣解法汇总5-正则表达 ...

最新文章

  1. python编程基础知识体系_最新版 17 幅思维导图:Python 编程之核心知识体系
  2. Java关键字介绍之final
  3. linux c 用户态 调试追踪函数 调用堆栈 定位段错误
  4. Git 简易食用指南 v2.0
  5. JVM的生命周期||JVM的发展历程
  6. Minst 0-9特征迭代次数曲线表达式
  7. 揭秘MySQL生态重要功能,X-Engine引擎核心能力——OnlineDDL
  8. 【机器视觉】Qt集成Halcon开发环境详解(一)
  9. QML-关于Qt.rgba()颜色无法正常显示问题
  10. 用redis实现分布式锁
  11. SPS中计算值公式函数简介
  12. Windows Phone 7 使用Perst数据库的Demo——流水账
  13. 机器学习和深度学习资料汇总【01】
  14. LABVIEW2020安装OpenG Labpython库无法使用解决办法
  15. 每日古文--邹忌讽齐王纳谏
  16. 很全!国内外网络安全厂商有哪些?
  17. 树莓派Ubuntu21.04 罗技键盘和鼠标重启后失效问题解决
  18. 按键精灵_提取文字、数字、字母、符号的通用Function
  19. 如何注册微信个人公众号,教程来啦!怎样注册微信个人公众订阅号
  20. 销售订单退货原因对应的快码

热门文章

  1. 风控团伙挖掘中的14种关系总结
  2. 3.2 Static Terrestrial Laser Scanners 静态地基激光扫描仪
  3. 2021年书单-产品相关
  4. 上计算机课的日记100字,体育课日记100字(通用17篇)
  5. c语言程序设计与数据结构清华版,清华大学出版社-图书详情-《程序设计基础与数据结构》...
  6. S7-1200工作原理
  7. 玄子Share-BCSP助学手册之JAVA开发
  8. 正负样本的定义、划分以及用于loss的计算的过程
  9. 响铃:抖音的算法,美拍的社区,谁能赢得短视频内容升级战?
  10. LeetCode 377518