力扣每日一题 矩阵中的最大得分 DP

Problem: 3148. 矩阵中的最大得分

👨‍🏫 参考题解

Java 复制代码
class Solution {
    public int maxScore(List<List<Integer>> g) {
        int n = g.size(); // 获取矩阵的行数
        int m = g.get(0).size(); // 获取矩阵的列数
        int inf = 1 << 30; // 定义一个非常大的值,用于模拟正无穷大
        int ans = -inf; // 初始化结果为负无穷大,表示最大总得分
        int[][] f = new int[n][m]; // 创建二维数组,存储到达每个位置的最小路径值

        // 遍历矩阵中的每个元素
        for(int i = 0; i < n; i++){
            for(int j = 0; j < m; j++){
                int t = inf; // 初始化t为正无穷大

                // 如果当前不是第一行,则考虑从上方移动到当前位置的情况
                if(i > 0){
                    t = Math.min(t, f[i-1][j]); // 更新t为上方路径的最小值
                }

                // 如果当前不是第一列,则考虑从左侧移动到当前位置的情况
                if(j > 0){
                    t = Math.min(t, f[i][j-1]); // 更新t为左边路径的最小值
                }

                // 计算当前格子可能的最大得分,并更新全局最大得分
                ans = Math.max(ans, g.get(i).get(j) - t);

                // 记录到达当前格子的最小路径值
                f[i][j] = Math.min(g.get(i).get(j), t);
            }
        }

        return ans; // 返回最终计算出的最大总得分
    }
}
相关推荐
倒头就睡的小比特19 小时前
算法竞赛C++常用的STL
c++·算法
小羊没烦恼!20 小时前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
猎头南楼21 小时前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
旖旎夜光1 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
wzdark1 天前
大规模并行计算中的负载均衡算法研究4
算法
Because_of_Her11 天前
并查集-听课笔记
笔记·算法·并查集
码流子1 天前
高速公路安全监测实践:碰撞监测预警+物联网底座,从感知到处置的闭环
大数据·人工智能·物联网·算法·架构
another heaven1 天前
【算法/C++ MD5算法能否逆解码?原理、C++实现与同类哈希算法对比】
c++·算法·哈希算法
wzdark1 天前
从算法设计模式看编程思维的抽象能力4
算法
2601_962218611 天前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法