day-39 矩阵中的最大得分

news2024/11/13 22:36:05

在这里插入图片描述
思路
动态规划。利用一个二维数组记录对应位置可以达到的最高得分(位置(0,0)不可能),然后找出最大值即可(如果除了(0,0)上的值其他值都一样,则返回任意一个即可)。

解题过程
首先算出第一行和第一列的最大得分,其余位置的最高得分只与左边位置和上边位置的最高得分有关联。

Code

class Solution {
    public int maxScore(List<List<Integer>> grid) {
        int row=grid.size();
        int col=grid.get(0).size();
        int arr1[][]=new int[row][col];
        for(int i=1;i<row;i++){
            arr1[i][0]=Math.max(grid.get(i).get(0)-grid.get(i-1).get(0),arr1[i-1][0]+grid.get(i).get(0)-grid.get(i-1).get(0));
        }
        for(int i=1;i<col;i++){
            arr1[0][i]=Math.max(grid.get(0).get(i)-grid.get(0).get(i-1),arr1[0][i-1]+grid.get(0).get(i)-grid.get(0).get(i-1));
        }
        for(int i=1;i<row;i++){
            for(int j=1;j<col;j++){
                arr1[i][j]=Math.max(grid.get(i).get(j)-grid.get(i).get(j-1),arr1[i][j-1]+grid.get(i).get(j)-grid.get(i).get(j-1));
                arr1[i][j]=Math.max(arr1[i][j],arr1[i-1][j]+grid.get(i).get(j)-grid.get(i-1).get(j));
                arr1[i][j]=Math.max(arr1[i][j],grid.get(i).get(j)-grid.get(i-1).get(j));
            }
        }
        boolean flag=true;
        int ans=arr1[0][1]-arr1[0][0];
        for(int i=0;i<row;i++){
            for(int j=0;j<col;j++){
                if((i!=0||j!=0)&&arr1[i][j]>ans){
                    ans=arr1[i][j];
                    flag=false;
                }
            }
        }
        return ans;
    }
}

作者:菜卷
链接:https://leetcode.cn/problems/maximum-difference-score-in-a-grid/solutions/2881705/ju-zhen-zhong-de-zui-da-de-fen-by-ashi-j-2g15/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2042099.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 3 入门基础知识 之数据容器及用法【2】 推荐

前面关于python的下载安装、如何定义变量&#xff0c;基本的数据类型&#xff0c;以及if条件语句、for循环语句&#xff0c;部分运算都进行了梳理总结。参考&#xff1a;Python 3 入门基础知识【1】数据类型 安装下载 推荐-CSDN博客 这里回顾一下python的数据容器基础知识&…

智能换热:图扑智慧供热可视化管理平台

图扑搭建智慧供热可视化管理平台&#xff0c;通过实时监控和数据分析提升运营效率&#xff0c;实现智能化管理&#xff0c;保障系统稳定与高效运行。

深挖Redis分布式缓存:你还在为缓存架构感到困惑吗?灵办AI为你揭开文献背后的秘密!

文章目录 1 灵办AI插件2 翻译~外文文献3 解释~文献标题分析4 文档解析~文献总结5 搜索~全网搜索总结6 总体评价~文献代码分析总结 本文将引用 Research and Application of Distributed Cache Based on Redis [1] 外文文献解读为案例进行剥削&#xff0c;进而提高对 Redis的分布…

相机光学(三十五)——三刺激值

0.参考链接 [1]三刺激值 [2]色差仪CIERGB和CIEXYZ光谱三刺激值区别 1.三刺激值的由来 根据杨-亥姆霍兹的三原色理论&#xff0c;色的感觉是由于三种原色光刺激的综合结果。在红、绿&#xff0c;蓝三原色系统中&#xff0c;红。绿、蓝的刺激量分别以R、G、B表示之。由于从实际…

安装开源软件ChatALL(齐叨)来聚合各大人工智能工具

安装开源软件ChatALL&#xff08;齐叨&#xff09;来聚合各大人工智能工具 前言 如果你跟我一样无论遇到什么问题都要询问人工智能&#xff0c;并且至少同时用4-5个公司的人工智能&#xff0c;选择一个最中意的结果 以前我都会用Chrome浏览器打开4个窗口&#xff0c;每个问题…

c语言中比较特殊的输入格式

目录 一.%[ ] 格式说明符 1.基本用法 (1)读取字母字符: (2)读取数字字符: (3)读取所有字符直到遇到空格: (4)读取直到换行符: 2.使用范围和组合: 3.^ 取反操作 4.注意事项 (1). 字符范围的正确表示 (2). 避免字符集中的特殊字符冲突 (3).避免空字符集 (4). 输入长…

C++竞赛初阶L1-11-第五单元-for循环(25~26课)510: T454422 均值

题目内容 给出一组样本数据&#xff0c;计算其均值。 输入格式 输入有两行&#xff0c;第一行包含一个整数&#xff0c;表示样本容量 n。 第二行包含 n 个浮点数 ai​&#xff0c;代表各个样本数据。 输出格式 输出一行&#xff0c;包含一个浮点数&#xff0c;表示均值。 …

TikTok爆款盘点-哪些产品会更受欢迎

海外短视频兴起&#xff0c;TikTok成为了国内企业出海最成功的APP。TikTok现在不仅是一个娱乐社交平台&#xff0c;也是一个强大的电商平台。如果出海卖家在选品上好好下功夫&#xff0c;利用TikTok这个营销工具&#xff0c;在海外也能获得不小的收益。 那么&#xff0c;TikTok…

网络协议十 应用层 SPDY / HTTP2 / QUIC / HTTP3

一 HTTP1.1 的不足 二 SPDY 协议 三 HTTP2 也只是需要在 server 端配置&#xff0c;不需要改动 服务器的代码。 HTTP2 可以看成是 将 SPDY 和 HTTP 融合在一起的改动 上面image sprites 的概念 HTTP2的问题--对头阻塞 和 握手延迟问题 引出的 QUIC 技术 由于传输层用的 TC…

node20+版本下hexo部署报错失败的解决办法

最近升级了node.js的版本&#xff0c;升到了最新的稳定版本v20.16.0&#xff0c;结果发现在该版本下hexo部署报错失败。本文记录了node20版本下hexo部署报错失败的解决办法。 一、报错信息 执行hexo的deploy部署命令 hexo d具体报错信息如下 INFO Deploying: git INFO Cl…

【大模型系列】更像人类行为的爬虫框架

随着大规模模型技术的兴起&#xff0c;我们可以看到百模大战、各种智能体、百花齐放的应用场景&#xff0c;那么作为一名前端开发者&#xff0c;以前端的视角&#xff0c;我们应当如何积极做好技术储备&#xff0c;开拓技术视野&#xff0c;在智能体时代保持一定的竞争力呢&…

webpack打包可视化分析之--webpack-bundle-analyzer

在开发一些项目的时候&#xff0c;有时候有些旧的框架项目用的webpacke打包慢&#xff0c;打包出来的包文件大&#xff0c;然而我们想要对它进行优化分析&#xff0c;有些旧的项目可能在不断迭代的过程中&#xff0c;有些模块功能改造或者有些需求变化&#xff0c;有些新需求模…

python的warnings.filterwarnings(“ignore“)

在python中运行代码经常会遇到的情况是——代码可以正常运行但是会提示警告&#xff0c;如果想要去掉这些警告&#xff0c;可以使用python的warnings.filterwarnings(“ignore”)函数。 代码&#xff1a; import warnings warnings.filterwarnings(ignore)看一下这个函数&…

【学习笔记】数据结构(五)

多维数组和广义表 文章目录 多维数组和广义表5.1 数组的定义5.2 数组的顺序表示和实现5.3 矩阵的压缩存储5.3.1 特殊矩阵5.3.2 稀疏矩阵三元组顺序表 (Triplet Representation) - 有序的双下标法行逻辑链接的顺序表十字链表法 5.4 广义表的定义5.5 广义表的存储结构5.6 m元多项…

mysql与Python交互

mysql数据库基本操作&#xff1a; [rootm ~]# tar -xf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz 解压压缩包 [rootm ~]# ls anaconda-ks.cfg mysql-5.7.44-linux-glibc2.12-x86_64 mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz [rootm ~]# cp -r mysql-5.7.44-linu…

【myz_tools】Python库 myz_tools:Python算法及文档自动化生成工具

写在前面 本来最开始只是单纯的想整理一下常用到的各类算法&#xff0c;还有一些辅助类的函数&#xff0c;方便时间短的情况下快速开发。后来发现整理成库更方便些&#xff0c;索性做成库&#xff0c;通过pip install 直接可以安装使用 关于库 平时见到的各类算法大多数还是…

volatile 浅谈

在Java中&#xff0c;volatile 关键字是一种轻量级的同步机制&#xff0c;它用于确保变量的可见性和有序性&#xff0c;但不保证原子性。当我们说 volatile 屏障时&#xff0c;我们实际上是在讨论 volatile 变量如何影响Java内存模型&#xff08;JMM&#xff09;中的操作重排序…

Vue3+vite+ts 项目使用mockjs

1、安装mockjs npm i mockjs 2、安装vite-plugin-mock npm i vite-plugin-mock -D 3、安装axios npm i axios 4.在src目录下创建mock文件夹,在文件夹内创建login.ts等文件&#xff0c;并在文件夹内放置以下内容&#xff08;注&#xff1a;URL要和真实请求地址保持一致&am…

使用html+css+js实现完整的登录注册页面

在这篇博客中&#xff0c;我们将讨论如何使用简单的 HTML 和 CSS 构建一个登录与注册页面。这个页面包含两个主要部分&#xff1a;登录界面和注册界面。我们还会展示如何通过 JavaScript 切换这两个部分的显示状态。 页面结构 我们将创建一个页面&#xff0c;其中包含两个主要…

DALL-E 2:重新定义图像生成的人工智能

DALL-E 2是一款先进的人工智能模型&#xff0c;它在图像生成领域取得了突破性进展。与前一代DALL-E相比&#xff0c;DALL-E 2能够以更高的分辨率和更精细的细节生成图像&#xff0c;同时还能更好地理解并处理复杂的文本描述。这意味着&#xff0c;用户可以通过输入描述性的文本…