剑指 Offer 47. 礼物的最大价值

简介: 剑指 Offer 47. 礼物的最大价值

 剑指 Offer 47. 礼物的最大价值

在一个 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

 

思路:  

       看到题,很经典嘛,动态规划题目,先找子问题、找规律。

       这道题要求从左上角到右下角的路径最大权值和,设从左上角走到右下角的权值和为f(m,n),那么,

f(m,n) = Max(f(m-1,n),f(m,n-1)) + grid[m][n];

       其中,存在边界问题,最左列和最上行,只存在一种移动情况,咱们可以拿出来单独操作,然后在对其他列和行进行操作即可。

       注意:这里为了省二外的dp数组空间,我直接用grid数组当作dp数组进行操作了。

上代码:

class Solution {
    public int maxValue(int[][] grid) {
        //为了节约空间,直接利用原数组当作dp
            int m = grid.length;
            int n = grid[0].length;
            //最左列
            for(int i=1; i<m; i++){
                grid[i][0] = grid[i-1][0] +grid[i][0];
            }
            //最上边地一行
            for(int j=1; j<n; j++){
                grid[0][j] = grid[0][j-1] + grid[0][j];
            }
            //剩余的
            for(int i=1;i<m; i++){
                for(int j=1; j<n; j++){
                    grid[i][j] = Math.max(grid[i-1][j],grid[i][j-1]) + grid[i][j];
                }
            }
            return grid[m-1][n-1];  
    }
}

image.gif


相关文章
element-ui下拉框el-select多选出现滚动条闪现
弹窗组件中放置了el-select下拉框组件,多选项较多时,聚焦弹出下拉选择框时,下方会出现一个横向滚动条闪现一下,虽然不影响使用,但是作为一个追求完美的码农肯定是受不了
|
JavaScript 前端开发 Java
10分钟邮箱API发送邮件的操作步骤
使用10分钟邮箱API发送邮件涉及6步:获取API密钥、导入相应库、设置请求参数、发送API请求、处理响应及检查收件箱。适用于自动化邮件发送,如测试和临时通知。[≤240字符]
|
开发者 知识图谱
免费下载!《阿里工程师的自我修养》公开10位阿里大牛解决问题的思维方式
今天,阿里技术公布一波阿里P8、P9技术大牛的思维模型,将他们的思维模式呈现出来。你可以在阿里资深专家职业生涯的真切感悟中,找到应对危机的最佳方法。《阿里工程师的自我修养》现已正式公开,可免费下载阅读。
136232 1
免费下载!《阿里工程师的自我修养》公开10位阿里大牛解决问题的思维方式
|
小程序 Linux 区块链
Python PyInstaller 打包成 Win、Mac 应用程序(app / exe)
Python PyInstaller 打包成 Win、Mac 应用程序(app / exe)
915 0
|
9月前
|
机器学习/深度学习 缓存 自然语言处理
DeepSeek背后的技术基石:DeepSeekMoE基于专家混合系统的大规模语言模型架构
DeepSeekMoE是一种创新的大规模语言模型架构,融合了专家混合系统(MoE)、多头潜在注意力机制(MLA)和RMSNorm归一化。通过专家共享、动态路由和潜在变量缓存技术,DeepSeekMoE在保持性能的同时,将计算开销降低了40%,显著提升了训练和推理效率。该模型在语言建模、机器翻译和长文本处理等任务中表现出色,具备广泛的应用前景,特别是在计算资源受限的场景下。
1178 29
DeepSeek背后的技术基石:DeepSeekMoE基于专家混合系统的大规模语言模型架构
|
JavaScript 测试技术 API
跟随通义灵码一步步升级vue2(js)项目到vue3版本
Vue 3 相较于 Vue 2 在性能、特性和开发体验上都有显著提升。本文介绍了如何利用通义灵码逐步将 Vue 2 项目升级到 Vue 3,包括备份项目、了解新特性、选择升级方式、升级依赖、迁移组件和全局 API、调整测试代码等步骤,并提供了注意事项和常见问题的解决方案。
1050 4
|
存储 人工智能 运维
Forrester Wave:阿里云持续领跑中国公共云市场
全球研究和咨询公司Forrester发布了中国云计算Forrester Wave报告,称AI已成为驱动企业上云的新因素,中国公共云市场正在快速成长成熟。阿里云等8家云计算公司入围 2024 Forrester Wave报告,在全部32项评测中阿里云揽获23项最高分,整体位居“领导者象限”。
|
NoSQL Linux Shell
【进程概念】进程状态以及僵尸进程(结合代码)
【进程概念】进程状态以及僵尸进程(结合代码)
|
运维 安全 数据库
【运维面试】校企合作运维工程师12-16K薪资面试题
【运维面试】校企合作运维工程师12-16K薪资面试题
|
机器学习/深度学习 自然语言处理 C++
【Python机器学习】条件随机场模型CRF及在中文分词中实战(附源码和数据集)
【Python机器学习】条件随机场模型CRF及在中文分词中实战(附源码和数据集)
402 0