741.摘樱桃

一个N x N的网格(grid) 代表了一块樱桃地,每个格子由以下三种数字的一种来表示:

  • 0 表示这个格子是空的,所以你可以穿过它。
  • 1 表示这个格子里装着一个樱桃,你可以摘到樱桃然后穿过它。
  • -1 表示这个格子里有荆棘,挡着你的路。

你的任务是在遵守下列规则的情况下,尽可能的摘到最多樱桃:

  • 从位置 (0, 0) 出发,最后到达 (N-1, N-1) ,只能向下或向右走,并且只能穿越有效的格子(即只可以穿过值为0或者1的格子);
  • 当到达 (N-1, N-1) 后,你要继续走,直到返回到 (0, 0) ,只能向上或向左走,并且只能穿越有效的格子;
  • 当你经过一个格子且这个格子包含一个樱桃时,你将摘到樱桃并且这个格子会变成空的(值变为0);
  • 如果在 (0, 0) 和 (N-1, N-1) 之间不存在一条可经过的路径,则没有任何一个樱桃能被摘到。

示例 1:

输入: grid =
[[0, 1, -1],[1, 0, -1],[1, 1,  1]]
输出: 5
解释:
玩家从(0,0)点出发,经过了向下走,向下走,向右走,向右走,到达了点(2, 2)。
在这趟单程中,总共摘到了4颗樱桃,矩阵变成了[[0,1,-1],[0,0,-1],[0,0,0]]。
接着,这名玩家向左走,向上走,向上走,向左走,返回了起始点,又摘到了1颗樱桃。
在旅程中,总共摘到了5颗樱桃,这是可以摘到的最大值了。

说明:

  • grid 是一个 N * N 的二维数组,N的取值范围是1 <= N <= 50
  • 每一个 grid[i][j] 都是集合 {-1, 0, 1}其中的一个数。
  • 可以保证起点 grid[0][0] 和终点 grid[N-1][N-1] 的值都不会是 -1。

做题结果

失败,想到从左上到右下走两次的方式,不知道怎么计算

方法:动态规划

来自官方解法评论区力扣:可爱抱抱呀

741.摘樱桃 动态规划相关推荐

  1. LeetCode刷题:741. Cherry Pickup —摘樱桃 动态规划

    LeetCode刷题:741. Cherry Pickup -摘樱桃 动态规划 原题链接:https://leetcode.com/problems/cherry-pickup/ In a N x N ...

  2. Leetcode 741. 摘樱桃 C++

    Leetcode 741. 摘樱桃 题目 一个N x N的网格(grid) 代表了一块樱桃地,每个格子由以下三种数字的一种来表示: 0 表示这个格子是空的,所以你可以穿过它. 1 表示这个格子里装着一 ...

  3. LeetCode 741. 摘樱桃___贪心算法篇__失败

    741. 摘樱桃 一个N x N的网格(grid) 代表了一块樱桃地,每个格子由以下三种数字的一种来表示: 0 表示这个格子是空的,所以你可以穿过它. 1 表示这个格子里装着一个樱桃,你可以摘到樱桃然 ...

  4. [LeetCode解题报告] 741. 摘樱桃

    [LeetCode解题报告] 741. 摘樱桃 一. 题目 1. 题目描述 2. 原题链接 二. 解题报告 1. 思路分析 2. 复杂度分析 3. 代码实现 三. 本题小结 一. 题目 1. 题目描述 ...

  5. 力扣 741. 摘樱桃

    题目来源:https://leetcode.cn/problems/cherry-pickup/ 大致题意: 给定一个二维数组1,其中数组元素由 0,1,-1 表示,有以下含义: 0 表示该位置可以通 ...

  6. LeetCode 741 摘樱桃(动态规划)

    一个N x N的网格(grid) 代表了一块樱桃地,每个格子由以下三种数字的一种来表示: 0 表示这个格子是空的,所以你可以穿过它. 1 表示这个格子里装着一个樱桃,你可以摘到樱桃然后穿过它. -1 ...

  7. [leetcode]741摘樱桃,动态规划

    题目表明去终点只能往下和往右,回去只能往上和往左,统计路程中经过的樱桃个数,那么就相当于从起点出发两次到终点,但两次路过到的同个樱桃就不能再重复计算,这两次不分先后,同时走深搜,然后用dp表示每个状态 ...

  8. 【741. 摘樱桃】

    来源:力扣(LeetCode) 描述: 一个N x N的网格(grid) 代表了一块樱桃地,每个格子由以下三种数字的一种来表示: 0 表示这个格子是空的,所以你可以穿过它. 1 表示这个格子里装着一个 ...

  9. 每日一题:741. 摘樱桃

    解题思路 看看官方题解吧 代码 class Solution {public int cherryPickup(int[][] grid) {int n = grid.length;int[][][] ...

最新文章

  1. 7 个 jQuery 最佳实践
  2. 【二级java】软件工程基础
  3. AutoCAD 命令参考手册
  4. 初等代数(3):代数方程、指数与对数、复数
  5. Hadoop伪分布安装及简单使用
  6. 使用C#快速生成顺序GUID
  7. 博士生想逃离科研,导师还要帮他吗?|Nature专访
  8. python subplot_Python金融应用之图表制作(五)
  9. jquery表格自动补全插件——datagrid
  10. 索尼Xperia 5 II官方高清渲染图曝光:还是那个熟悉的小屏旗舰
  11. 人生这道题,要该怎么做?
  12. OPNET网络仿真分析-目 录
  13. 数字信号处理实验一 系统响应及系统稳定性
  14. 拟合和统计中的检验参数
  15. mescroll下拉刷新上拉加载
  16. 什么是VXLAN?VXLAN技术细节及应用案例
  17. python求次幂_python如何求次幂?
  18. python提取人物特征_基于图像人物面部表情识别的特征提取优化方法与流程
  19. DELPHI常用函数集及简要范例 3
  20. 使用Karabiner为Mac内置键盘、HHKB进行映射

热门文章

  1. 大数据培训技术:DataSet介绍
  2. matlab画虫口模型分岔图,[转载]Matlab——混沌分岔图
  3. IMU加速度、磁力计校正
  4. Unity 内存优化之理解托管堆和本机堆
  5. 使用LM386制作Arduino音乐播放器
  6. 洛谷 P4363 [九省联考2018]一双木棋chess 题解
  7. 青龙面板+xdd-plus实现jd代挂
  8. 大三上算法设计和分析 老师:付豪
  9. billionaire双色球选号器
  10. 单机游戏行业死了吗?