剑指 Offer 47. 礼物的最大价值(中等)
时间:2021-08-23
本文章向大家介绍剑指 Offer 47. 礼物的最大价值(中等),主要包括剑指 Offer 47. 礼物的最大价值(中等)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
通过率 68.9%
题目描述:
在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?
示例 1:
输入:
[
[1,3,1],
[1,5,1],
[4,2,1]
]
输出: 12
解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物
提示:
0 < grid.length <= 200
0 < grid[0].length <= 200
思路:
可知:除了第一格,其余每一格都要经过它上面或左边那格才能到达
- 对于第一格:v[i][j] += 0
- 对于第一行:v[i][j] += v[i][j-1]
- 对于第一列:v[i][j] += v[i-1][j]
- 其他:v[i][j] += Math.max(v[i-1][j], v[i][j-1])
则v[n-1][m-1]即为能拿到的礼物的最大价值
1 /*JavaScript*/ 2 /** 3 * @param {number[][]} grid 4 * @return {number} 5 */ 6 var maxValue = function(grid) { 7 const n = grid.length 8 const m = grid[0].length 9 for(let i=0; i<n; i++) { 10 for(let j=0; j<m; j++) { 11 if(!i && !j) { //第一格 12 continue 13 }else if(!i) { //第一行 14 grid[i][j] += grid[i][j-1] 15 }else if(!j) { //第一列 16 grid[i][j] += grid[i-1][j] 17 }else { 18 grid[i][j] += Math.max(grid[i-1][j], grid[i][j-1]) 19 } 20 } 21 } 22 return grid[n-1][m-1] 23 };
原文地址:https://www.cnblogs.com/wwqzbl/p/15175459.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【NLP保姆级教程】手把手带你RNN文本分类(附代码)
- 作为一名Android面试官的碎碎念,面试要掌握这几个关键点!
- 拉格朗日乘子法和KKT约束
- Transformers Assemble(PART IV)
- 【NLP保姆级教程】手把手带你fastText文本分类(附代码)
- 【情感分析】ABSA模型总结(PART I)
- 【Kick Algorithm】十大排序算法及其Python实现
- 【情感分析】ABSA模型总结(PART II)
- 【NLP保姆级教程】手把手带你RCNN文本分类(附代码)
- 【NLP保姆级教程】手把手带你HAN文本分类(附代码)
- 【情感分析】基于Aspect的情感分析模型总结(PART III)
- NLP简报(Issue#6)
- python实现kNN(最近邻)
- python实现朴素贝叶斯
- Transformers Assemble(PART V)