题目

在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?

示例 1:输入:
[[1,3,1],[1,5,1],[4,2,1]
]
输出: 12
解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物

解决方法:

public class TestMaxValue {public static void main(String[] args) {int[][] test = new int[][]{{3, 8, 6, 0, 5, 9, 9, 6, 3, 4, 0, 5, 7, 3, 9, 3}, {0, 9, 2, 5, 5, 4, 9, 1, 4, 6, 9, 5, 6, 7, 3, 2}, {8, 2, 2, 3, 3, 3, 1, 6, 9, 1, 1, 6, 6, 2, 1, 9}, {1, 3, 6, 9, 9, 5, 0, 3, 4, 9, 1, 0, 9, 6, 2, 7}, {8, 6, 2, 2, 1, 3, 0, 0, 7, 2, 7, 5, 4, 8, 4, 8}, {4, 1, 9, 5, 8, 9, 9, 2, 0, 2, 5, 1, 8, 7, 0, 9}, {6, 2, 1, 7, 8, 1, 8, 5, 5, 7, 0, 2, 5, 7, 2, 1}, {8, 1, 7, 6, 2, 8, 1, 2, 2, 6, 4, 0, 5, 4, 1, 3}, {9, 2, 1, 7, 6, 1, 4, 3, 8, 6, 5, 5, 3, 9, 7, 3}, {0, 6, 0, 2, 4, 3, 7, 6, 1, 3, 8, 6, 9, 0, 0, 8}, {4, 3, 7, 2, 4, 3, 6, 4, 0, 3, 9, 5, 3, 6, 9, 3}, {2, 1, 8, 8, 4, 5, 6, 5, 8, 7, 3, 7, 7, 5, 8, 3}, {0, 7, 6, 6, 1, 2, 0, 3, 5, 0, 8, 0, 8, 7, 4, 3}, {0, 4, 3, 4, 9, 0, 1, 9, 7, 7, 8, 6, 4, 6, 9, 5}, {6, 5, 1, 9, 9, 2, 2, 7, 4, 2, 7, 2, 2, 3, 7, 2}, {7, 1, 9, 6, 1, 2, 7, 0, 9, 6, 6, 4, 4, 5, 1, 0}, {3, 4, 9, 2, 8, 3, 1, 2, 6, 9, 7, 0, 2, 4, 2, 0}, {5, 1, 8, 8, 4, 6, 8, 5, 2, 4, 1, 6, 2, 2, 9, 7}};System.out.println(maxValue(test));}public static int maxValue(int[][] grid) {int x = grid.length-1;int y = grid[0].length-1;int dp[][] = new int[x+1][y+1];return findMax(grid,x,y,dp);}public static int findMax(int[][]grid,int x,int y,int dp[][]){if (x >=0 && y >=0) {if (dp[x][y] != 0) {return dp[x][y];}int i = grid[x][y] + Math.max(findMax(grid, x - 1, y, dp), findMax(grid, x, y - 1, dp));dp[x][y] = i;return i;}return 0;}}

参考:https://leetcode-cn.com/problems/li-wu-de-zui-da-jie-zhi-lcof

算法-----礼物的最大价值相关推荐

  1. 力扣LeetCode经典算法 礼物的最大价值

    数据结构(五十一) 学习数据结构与算法过程中的心得体会以及知识点的整理,方便我自己查找,也希望可以和大家一起交流. -- 礼物的最大价值 -- 1.题目描述 在一个 m*n 的棋盘的每一格都放有一个礼 ...

  2. [剑指offer]面试题第[47]题[JAVA][礼物的最大价值][动态规划]

    [问题描述][中等] [解答思路] 1动态规划 动态规划流程 第 1 步:设计状态 f(i, j)f(i,j) 为从棋盘左上角走至单元格 (i ,j)(i,j) 的礼物最大累计价值 第 2 步:状态转 ...

  3. 【LeetCode】剑指 Offer 47. 礼物的最大价值

    [LeetCode]剑指 Offer 47. 礼物的最大价值 文章目录 [LeetCode]剑指 Offer 47. 礼物的最大价值 package offer;public class Soluti ...

  4. 【算法】剑指 Offer 47. 礼物的最大价值

    1.概述 在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0).你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格.直到到达棋盘的右下角.给定一个棋盘及 ...

  5. leetcode算法题--礼物的最大价值

    原题链接:https://leetcode-cn.com/problems/li-wu-de-zui-da-jie-zhi-lcof/ 动态规划 dp[i][j]表示到(i,j)这个点的最大价值 状态 ...

  6. 【千字分析】剑指 Offer 47. 礼物的最大价值

    我是小张同学,立志用更简洁的代码做更高效的表达 在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0).你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格 ...

  7. leetcode剑指 Offer 47. 礼物的最大价值(动态规划)

    在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0).你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格.直到到达棋盘的右下角.给定一个棋盘及其上面的礼 ...

  8. 剑指Offer - 面试题47. 礼物的最大价值(动态规划)

    1. 题目 在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0).你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格.直到到达棋盘的右下角.给定一个棋盘 ...

  9. 【剑指offer】面试题47:礼物的最大价值(Java)

    在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0).你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格.直到到达棋盘的右下角.给定一个棋盘及其上面的礼 ...

最新文章

  1. 如何将模糊的扫描版pdf转为清晰的pdf或word_pdf问题小结
  2. DATETIME类型和BIGINT 类型互相转换
  3. php 删除文件时间,php删除文件后重建,文件创建时间(filectime)未变化怎么解决??...
  4. 南邮计算机科学与技术专业排名,南京邮电大学王牌专业有哪些
  5. IntelliJ IDEA 2019.1.1 预览版发布,以及对旧版本的更新
  6. Java实现简单的文本编辑器
  7. 外资对我国企业兼并控制情况的资料
  8. 五步搞定Java性能调优(附超全技能图谱)
  9. 0001 工作业务问题_滞纳金公式计算区别实例
  10. 身体指数bmi流程图_理想的身体脂肪百分比是多少?男女不同脂肪数据对照表
  11. C语言求最大公约数的方法,辗转相除法,质因数分解法、短除法、更相减损法。
  12. 实时错误‘94’无效使用null值
  13. vuex mutaton与actions的区别
  14. netty 之 异步处理双子星io.netty.util.concurrent.Future与io.netty.util.concurrent.Promise
  15. 小米8样张彩色噪点问题分析
  16. 工作生活要懂得劳逸结合
  17. 快递/短信等热门API大全分享
  18. Python网络爬虫:PPT素材
  19. Hive性能优化(全面)解决数据倾斜等问题
  20. 2.2加勒比海盗船 最优装载问题

热门文章

  1. linux降低屏幕亮度,降低屏幕亮度,减缓眼疲劳 (linux/windows/firefox/android)
  2. C++ Exercises(十八)
  3. Kaggle HousePrice : LB 0.11666(排名前15%), 用搭积木的方式(一,原理)
  4. Android初学者教程
  5. [转]一个典型的软件项目的WBS评析
  6. 利用nofllow与内页链接做好SEO
  7. 《windows中GSX的管理》之四——cmware-cmd实例
  8. 使用FoundationDB高效地将SQL数据映射到NoSQL存储系统中
  9. continue和break语句的区别
  10. JAVA中LinkedLockingQueue的简单使用