【力扣】矩阵中的最长递增路径

一、题目描述

二、解题思路

1、先求出以矩阵中的每个单元格为起点的最长递增路径

题目中说,对于每个单元格,你可以往上,下,左,右四个方向移动那么以一个单元格为起点的最长递增路径就是:从该单元格往上,下,左,右四个方向走的四条递增路径中的最大值(即最长的一条递增路径)。

2、在求出的所有最长递增路径中找最大值

因为题目是求矩阵中的最长递增路径,所以要在求出的所有最长递增路径中找最大值。

3、使用“记忆化搜索”(递归+“备忘录” )来解决该题。

三、 代码

class Solution {int m, n;//遍历上、下、左、右四个方向所需的数组int[] dx = {0,0,1,-1};int[] dy = {1,-1,0,0};int[][] memo;  //备忘录public int longestIncreasingPath(int[][] matrix) {m = matrix.length;n = matrix[0].length;memo = new int[m][n];//求所有的最长递增路径中的最大值int ret = 0;for(int i = 0; i < m; i++) {for(int j = 0; j < n; j++) {ret = Math.max(ret,dfs(i, j, matrix));}}return ret;}//递归函数//求出以矩阵中的每个单元格为起点的最长递增路径(上下左右四个方向中的最大值)public int dfs(int i, int j, int[][] matrix) {if(memo[i][j] != 0) {return memo[i][j];}int ret = 1;for(int k = 0; k < 4; k++) {int x = i + dx[k];int y = j + dy[k];if(x >= 0 && x < m && y >= 0 && y < n && matrix[x][y] > matrix[i][j]) {ret = Math.max(ret, dfs(x,y,matrix)+1);}}memo[i][j] = ret;return ret;}
}

 

 

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

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

相关文章

基于曲率的关键点检测

曲率是描述点云中每个点局部几何形状的一种度量。高曲率的点通常位于边缘、角点等显著位置。因此,通过检测曲率较高的点,我们可以找到点云中的关键点。 函数实现 下面是一个用于基于曲率检测关键点的函数实现 计算平均曲率 //计算平均曲率 float com_avg_curvature(pcl::P…

SpringBoot项目启动后访问网页显示“Please sign in“

SpringBoot启动类代码如下 SpringBoot项目启动后访问网页显示"Please sign in"&#xff0c;如图 这是一个安全拦截页面&#xff0c;即SpringSecurity认证授权页面&#xff0c;因为SecurityAutoConfiguration是Spring Boot提供的安全自动配置类&#xff0c;也就是说它…

城规跨考地信:你需要知道的几件事

24考研结束&#xff0c;25地信考研的小伙伴也开始准备。 在这期间发现一个现象&#xff0c;城规跨考GIS的讨论度非常高。 对这一点&#xff0c;我并不感到意外&#xff0c;因为随着地产行业的节节败退&#xff0c;很多单位不需要那么多规划人和建筑人&#xff0c;乃至土木人。…

SpringCloud 微服务中网关如何记录请求响应日志?

在基于SpringCloud开发的微服务中&#xff0c;我们一般会选择在网关层记录请求和响应日志&#xff0c;并将其收集到ELK中用作查询和分析。 今天我们就来看看如何实现此功能。 日志实体类 首先我们在网关中定义一个日志实体&#xff0c;用于组装日志对象 Data public class …

使用Java apache commons包五分钟搞定NCR解析(内附源码)

在网上看到很多关于解析NCR(Numeric Character Reference)字符串的java实现&#xff0c;核心都是通过自定义正则表达式来解析&#xff0c;其实org.apache.commons 已经为我们提供了jar包 解决该问题&#xff0c;非常的方便&#xff01;在这里我就来简单分享一下具体实现方法&am…

这就是英伟达 CEO 黄仁勋所说的人工智能“下一波浪潮”|TodayAI

在台湾一年一度的科技展 COMPUTEX 开幕前的周日&#xff0c;英伟达&#xff08;Nvidia&#xff09;首席执行官黄仁勋&#xff08;Jensen Huang&#xff09;表示&#xff0c;机器人和“理解物理定律的 AI”将成为下一波技术浪潮。他指出&#xff0c;英伟达目前正在推动生成式人工…

MyBatis核心对象

MyBatis核心类对象主要有俩个&#xff1a; 1&#xff1a;对相关配置文件信息进行封装的Configuration对象 2&#xff1a;用来执行数据库操作的Executor对象。 核心对象----存储类对象Configuration Configuration对象主要有三个作用&#xff1a; 1&#xff1a;封装MyBatis…

Pulsar 社区周报 | No.2024-05-30 | BIGO 百页小册《Apache Pulsar 调优指南》

“ 各位热爱 Pulsar 的小伙伴们&#xff0c;Pulsar 社区周报更新啦&#xff01;这里将记录 Pulsar 社区每周的重要更新&#xff0c;每周发布。 ” BIGO 百页小册《Apache Pulsar 调优指南》 Hi&#xff0c;Apache Pulsar 社区的小伙伴们&#xff0c;社区 2024 上半年度的有奖问…

Python input 语法:深入解析与高效运用

Python input 语法&#xff1a;深入解析与高效运用 Python中的input函数是获取用户输入的关键工具&#xff0c;其语法简洁却功能强大。然而&#xff0c;对于初学者来说&#xff0c;input的语法及其背后的机制可能会显得有些复杂和困惑。本文将从四个方面、五个方面、六个方面和…

【java11】java11新特性介绍

Java11于2018年9月25日正式发布&#xff0c;Java11是继Java8之后的第一个LTS&#xff08;Long-Term-Support&#xff09;长期支持功能版本&#xff0c;与之前的版本&#xff08;Java9和Java10&#xff09;不同&#xff0c;它提供了长达3年的维护期&#xff0c;旨在提供稳定且长…

AIGC和ChatGPT有什么区别?

AIGC和ChatGPT有什么区别? 首先先解释一下它们各自的概念 什么是AIGC AIGC&#xff0c;全称为Artificial Intelligence Generated Content&#xff0c;中文译为人工智能生成内容。这是一种利用人工智能技术自动生成内容的生产方式。例如&#xff0c;它可以创作出各种形式的内…

基于PHP+MySQL组合开发的同城便民小程序源码系统 房产出租+求职招聘+相亲交友 带完整的安装代码包以及搭建教程

系统概述 在当今信息化高速发展的时代&#xff0c;同城便民小程序已成为城市居民日常生活中不可或缺的一部分。为了满足广大用户的需求&#xff0c;小编给大家分享一款基于PHPMySQL组合开发的同城便民小程序源码系统。该系统集房产出租、求职招聘、相亲交友等多功能于一体&…

【JS】JavaScript编程语言-数据类型 日期和时间(2024-06-04)

内建对象&#xff1a;日期&#xff08;Date&#xff09;。该对象存储日期和时间&#xff0c;并提供了日期/时间的管理方法。 我们可以使用它来存储创建/修改时间&#xff0c;测量时间&#xff0c;或者仅用来打印当前时间。 1、创建 调用 new Date() 来创建一个新的 Date 对象…

微信小程序使用echarts

思路 五个tab公用一个柱状图组件切换tab以及切换时间改变数据&#xff0c;传入子组件&#xff0c;子组件监听数据重新更新点击柱状图显示具体数值每个时间点有两个柱子&#xff08;高压和低压&#xff09;&#xff0c;柱状图显示高压的最大值到最小值的范围除了血压其余只有一…

Python采集数据处理:利用Pandas进行组排序和筛选

概述 在现代数据处理和分析中&#xff0c;网络爬虫技术变得越来越重要。通过网络爬虫&#xff0c;我们可以自动化地从网页上收集大量的数据。然而&#xff0c;如何高效地处理和筛选这些数据是一个关键问题。本文将介绍如何使用Python的Pandas库对采集到的数据进行组排序和筛选…

NotImplementedError: cannot instantiate ‘PosixPath‘ on your system报错解决

问题描述 NotImplementedError: cannot instantiate PosixPath on your systemThe above exception was the direct cause of the following exception: 解决 在代码的最前面加上 import pathlib temp pathlib.PosixPath pathlib.PosixPath pathlib.WindowsPath 如果是Lin…

基于SpringBoot+Vue研究生志愿填报辅助系统设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝1W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;还…

mp公共字段自动注入

目录 一 什么是公共字段自动注入 二 使用mp实现公共字段自动注入 1.实现步骤 ①导入mp相关依赖 ② 在实体类上给相关字段加上 TableField()注解 ③自定义元数据对象处理器 2.实现原理 一 什么是公共字段自动注入 我们平时在执行更新或者是插入数据功能的时候&#xff0c;…

AI技术的未来展望

随着科技的不断革新&#xff0c;0417photo.cn人工智能&#xff08;AI&#xff09;技术正逐步从科幻走向现实&#xff0c;成为推动社会进步和经济发展的重要力量。在这篇文章中&#xff0c;我们将探讨AI技术的当前发展态势、面临的挑战以及未来可能带来的变革。 一、AI技术的当…

智绘“水蓝图”,宏电亮相第4届中国(山东)水利科技与生态建设博览会

5月23-25日&#xff0c;第4届中国&#xff08;山东&#xff09;水利科技与生态建设博览会在济南黄河国际会展中心成功召开。展会以“人水和谐&#xff0c;生态山东”为主题&#xff0c;围绕智慧水利建设、水环境治理、水生态保护等领域&#xff0c;展示当下水利行业的新技术、新…