NC 矩阵最长递增路径

news2024/9/21 18:54:03

系列文章目录


文章目录

  • 系列文章目录
  • 前言


前言

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
在这里插入图片描述


描述
给定一个 n 行 m 列矩阵 matrix ,矩阵内所有数均为非负整数。 你需要在矩阵中找到一条最长路径,使这条路径上的元素是递增的。并输出这条最长路径的长度。
这个路径必须满足以下条件:

  1. 对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外。
  2. 你不能走重复的单元格。即每个格子最多只能走一次。
    例如:当输入为[[1,2,3],[4,5,6],[7,8,9]]时,对应的输出为5,
    其中的一条最长递增路径如下图所示:
    在这里插入图片描述
    在这里插入图片描述
import java.util.*;
public class Solution {
    //记录四个方向
    private int[][] dirs = new int[][] {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};
    private int n, m;
    //深度优先搜索,返回最大单元格数
    public int dfs(int[][] matrix, int[][] dp, int i, int j) {
        if(dp[i][j] != 0)
            return dp[i][j];
        dp[i][j]++;
        for (int k = 0; k < 4; k++) {
            int nexti = i + dirs[k][0];
            int nextj = j + dirs[k][1];
            //判断条件
            if(nexti >= 0 && nexti < n && nextj >= 0 && nextj < m && matrix[nexti][nextj] > matrix[i][j])
                dp[i][j] = Math.max(dp[i][j], dfs(matrix, dp, nexti, nextj) + 1);
        }
        return dp[i][j];
    }
    public int solve (int[][] matrix) {
        //矩阵不为空
        if (matrix.length == 0 || matrix[0].length == 0) 
            return 0;
        int res = 0;
        n = matrix.length;
        m = matrix[0].length;
        //i,j处的单元格拥有的最长递增路径
        int[][] dp = new int[m + 1][n + 1];  
        for(int i = 0; i < n; i++) 
            for(int j = 0; j < m; j++)
                //更新最大值
                res = Math.max(res, dfs(matrix, dp, i, j)); 
        return res;
    }
}

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

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

相关文章

网络安全学习(一)初识kali

kali是一个操作系统,和我们平时用的windows系统类似,只是kali是一个集合了很多工具的专用操作系统。 其官网是https://www.kali.org 点击download,选择安装到虚拟机 因为要安装在虚拟机上,所以我们先要安装VM。 使用下载好的kali虚拟机文件(下载后大约3.1G,解压后大约G,…

WGCAT工单系统 v1.2.1 支持导出PDF和分享创建工单功能

官网下载&#xff1a;www.wgstart.com WGCAT-v1.2.1 更新说明&#xff0c;2024-09-15发布 1. 新增&#xff0c;工单数据支持导出为PDF文件 2. 新增&#xff0c;可以分享给其他人创建工单&#xff0c;分享创建工单的链接不需要登录&#xff0c;直接可以提交工单数据&#xff0c;…

SVN笔记-SVN安装

SVN笔记-SVN安装 1、在windows下安装 SVN 1、准备svn的安装文件 下载地址&#xff1a;https://sourceforge.net/projects/win32svn/ 2、下载完成后&#xff0c;在相应的盘符中会有一个Setup-Subversion-1.8.17.msi的文件&#xff0c;目前最新的版本是1.8.17&#xff0c; 这里…

集成测试例题

答案&#xff1a;C 知识点&#xff1a;集成测试主要测的是模块间的接口&#xff0c;包括自顶向下-桩模块&#xff0c;自底向上-驱动模块&#xff0c;三明治-上下并行 自底向下&#xff0c;首先从底层模块开始测试&#xff0c;然后向上一级模块测试 比如说有B&#xff0c;C两…

vue中提示Parsing error: No Babel config file detected

这个错误提示是在说&#xff1a;ESLint 尝试解析你的 .ts (TypeScript) 文件时&#xff0c;找不到 Babel 的配置文件。Babel 通常需要一个配置文件来告诉它如何解析现代 JavaScript 或 TypeScript 代码。以下是对错误信息的详细解释&#xff1a; “No Babel config file detect…

基于TRIZ的救援机器人轻量化设计

在救援机器人设计中&#xff0c;轻量化是一个至关重要的目标&#xff0c;它直接关系到机器人的便携性、运输效率以及在复杂环境中的作业能力。TRIZ理论为我们提供了一套系统化的工具和方法&#xff0c;用于解决设计过程中遇到的各种挑战&#xff0c;特别是在实现轻量化目标时&a…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《考虑生产环节内特性的工业负荷调峰优化运行及二次调频能力评估 》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

iOS 巨魔进阶技巧,全面打破限制,Dopamine 越狱保姆级教程

嘿&#xff0c;这是黑猫&#xff0c;假期愉快。iOS 巨魔商店的意义&#xff0c;在于让未越狱的iPhone&#xff0c;可以自由安装第三方APP&#xff0c;同时赋予APP更高的系统权限。这已经足以满足90%的需求&#xff0c;但远远没到极限。 今天我们来聊一个巨魔高阶技巧&#xff…

【数据仓库】数据仓库常见的数据模型——维度模型

文章部分图参考自&#xff1a;多维数据模型各种类型&#xff08;星型、雪花、星座、交叉连接&#xff09; - 知乎 (zhihu.com) 文章部分文字canla一篇文章搞懂数据仓库&#xff1a;四种常见数据模型&#xff08;维度模型、范式模型等&#xff09;-腾讯云开发者社区-腾讯云 (ten…

IDEA一键部署Docker应用(赶紧过来卷)

部署要求&#xff1a; 你已经了解docker基本常用命名。 会书写Dockerfile文件。centos上已经安装docker 部署环境&#xff1a;本文采用 Idea2024来进行部署&#xff0c;部署到阿里云的centos的docker上 部分功能展示&#xff08;idea操作docker挺方便的&#xff0c;大家有空…

用于全文RSS服务的Full-Text-RSS

什么是 Full-Text-RSS &#xff1f; Full-Text-RSS 能轻松从网页或仅摘要的 RSS 提要中提取完整的文章内容。 是 fivefilters 全文 RSS 服务的非官方 Docker 镜像。 从功能上来说&#xff0c;和老苏之前介绍过的 Morss很 类似 文章传送门&#xff1a;用Morss获取全文RSS摘要 安…

利用secureCRT向虚拟机发送文件(secureCRT安装使用教程)

链接: secureCRT 链接:https://pan.baidu.com/s/1CvNYzoBbLVkyYNFq7hrT0g 提取码:5974 链接: secureCRT安装使用教程 链接:https://pan.baidu.com/s/1Bbi7SqyJBere8G53BCYL5A 提取码:xjw1

扫地机类清洁产品之直流无刷电机控制

扫地机类清洁产品之直流无刷电机控制 1.1 前言 扫地机产品有很多的电机控制,滚刷电机1个,边刷电机1-2个,清水泵电机,风机一个,部分中高端产品支持抹布功能,也就是存在抹布盘电机,还有追觅 科沃斯 石头等边刷抬升电机,滚刷抬升电机等的,这些电机有直流有刷电机,直接…

心觉:《潜意识创富实操营》首批蜕变者招募

昨天写了一篇文章&#xff0c;想帮助大家做“潜意识显化” 可能“显化”这个词&#xff0c;太专业了&#xff0c;有些人听不懂 今天我再用大白话讲一下 潜意识显化&#xff0c;本质上就是用科学的方法把潜意识的能量释放出来 帮助我们达成我们想要的目标 潜意识就像人体中…

AI donotpay平台介绍

AI donotpay平台介绍 DoNotPay 是一个基于人工智能的在线法律服务平台&#xff0c;旨在帮助用户解决与大公司和政府机构的各种问题。以下是对 DoNotPay 平台的详细介绍&#xff1a; 1. 平台概述 创始人: DoNotPay 由 Joshua Browder 于 2015 年创立&#xff0c;最初是一个用于…

20240911泰山杯初赛--temp

Wireshark打开temp.pcap流量包&#xff0c;发现有很多ICMP协议包。 一些ICMP数据包较大&#xff0c;且可发现&#xff0c;明显在传输HTTP协议数据内容&#xff1a; 右键&#xff0c;【显示分组字节】&#xff0c;进一步分析这些HTTP数据&#xff1a; GET /test.html HTTP/1.…

安卓玩机工具-----ADB与 FASTBOOT模式 图形化 多功能玩机刷机工具

工具说明 这款工具是英文版。易于使用的工具提供了用于运行 ADB 和 Fastboot 命令的图形用户界面。ADB 功能包括旁加载、安装和卸载应用程序、测试设备以及重新启动到不同的模式。可以使用 fastboot 命令进行设备管理;其中包括检查 Antirollback 和 active slots 等变…

思维商业篇(3)—三大竞争战略

思维商业篇(3)—三大竞争战略 三大竞争战略 都说商场如战场&#xff0c;每个业务赛道都会有竞争者&#xff0c;所以我们到底应该用什么和别人去竞争去PK呢&#xff1f; 三大竞争战略能帮助你识别和构建你的业务在产业当中的竞争优势&#xff0c;从而更好的获得竞争优势。 三…

CSCC2024数据库内核赛道Profile记录

同学参加CSCC2024数据库系统赛道比赛&#xff0c;我和他一起研究了一些优化的case&#xff0c;最后成功拿到全国2/325。在这里记录一下我们讨论优化过的问题&#xff08;建议把源码下下来边读边搜代码&#xff0c;否则会晕&#xff09; 行锁占用内存过大 Q&#xff1a;TPCC测…

图说GPT网络结构(参数量与计算量估计)

现在AI领域的主流模型几乎都是Transformer网络架构衍生而来。大热的LLM中的生成类模型很多都是来自于Transformer的变体&#xff0c;即decoder only架构。而GPT就是该类中的经典模型。尽管现在变体甚多&#xff0c;但大多没有根本性地改变其套路。 为了阐述方便&#xff0c;首…