当前位置: 首页 > news >正文

算法 矩阵最长递增路径-(递归回溯+动态规划)

牛客网: BM61

求矩阵的最长递增路径

解题思路:

1. 遍历二维矩阵每个位置,max求出所有位置分别为终点时的最长路径
2. 求某个位置为终点的最长路径时,使用动态规划dp对已经计算出的位置进行记录
3. 处理某个位置的最长路径时,如果dp[i][j]位置已有值,则直接返回即可,否则对此位置赋值1,再对上下左右4个方向进行递归求解,每次递归后返回的最长路径需+1才是当前位置的最长路径,使用max选择最大值赋予dp[i][j],4个方向均遍历完后返回dp[i][j]给主程序。

代码:

// gopackage main
// import "fmt"/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** 递增路径的最大长度* @param matrix int整型二维数组 描述矩阵的每个数* @return int整型
*/
func max(x, y int) int {if x > y {return x} else {return y}
}
var dirs = [][]int{{-1, 0}, {1, 0}, {0, -1}, {0, 1}}func process(matrix, dp [][]int, i, j, m, n int) int {if dp[i][j] > 0 {return dp[i][j]}dp[i][j] = 1for k := 0; k < 4; k++ {nexti := i + dirs[k][0]nextj := j + dirs[k][1]if nexti >= 0 && nexti < m && nextj >= 0 && nextj < n && matrix[nexti][nextj] < matrix[i][j] {dp[i][j] = max(dp[i][j], process(matrix, dp, nexti, nextj, m, n) + 1)}}return dp[i][j]
}func solve( matrix [][]int ) int {// write code hereif len(matrix) == 0 || len(matrix[0]) == 0 {return 0}m := len(matrix)n := len(matrix[0])dp := make([][]int, m)for i := 0; i < m; i++ {dp[i] = make([]int, n)}res := 0for i := 0; i < m; i++ {for j := 0; j < n; j++ {res = max(res, process(matrix, dp, i, j, m, n))}}return res
}

相关文章:

算法 矩阵最长递增路径-(递归回溯+动态规划)

牛客网: BM61 求矩阵的最长递增路径 解题思路: 1. 遍历二维矩阵每个位置&#xff0c;max求出所有位置分别为终点时的最长路径 2. 求某个位置为终点的最长路径时&#xff0c;使用动态规划dp对已经计算出的位置进行记录 3. 处理某个位置的最长路径时&#xff0c;如果dp[i][j]位…...

四、数学建模之图与网络模型

1.定义 2.例题及软件代码求解 一、定义 1.图和网络是相关概念 &#xff08;1&#xff09;图&#xff08;Graph&#xff09;&#xff1a;图是数学和计算机科学中的一个抽象概念&#xff0c;它由一组节点&#xff08;顶点&#xff09;和连接这些节点的边组成。图可以是有向的&…...

php在header增加key,sign,timestamp,实现鉴权

在PHP中&#xff0c;您可以通过在HTTP请求的Header中增加Key、Sign和Timestamp等信息来进行安全性鉴权。 以下是一种基本的思路和示例&#xff0c;用于说明如何实现这种鉴权机制&#xff1a; 生成Key和Sign&#xff1a; 服务端和客户端之间共享一个密钥&#xff08;Key&#x…...

Spring实例化源码解析之ConfigurationClassParser(三)

前言 上一章我们分析了ConfigurationClassPostProcessor的postProcessBeanDefinitionRegistry方法的源码逻辑&#xff0c;其中核心逻辑do while中调用parser.parse(candidates)方法&#xff0c;解析candidates中的候选配置类。然后本章我们主要分析ConfigurationClassParser的…...

在 Substance Painter中实现Unity Standard Shader

由于有需要在Substance Painter中显示什么样的效果&#xff0c;在Unity就要显示什么样的效果的需求&#xff0c;最近研究了几天&#xff0c;总算在Substance Painter中实现Unity standard的材质的渲染效果。具体效果如下&#xff1a; 在Unity中&#xff1a; Substance Painte…...

第二证券:个人开证券账户要开户费吗?

随着互联网和移动端东西的遍及&#xff0c;越来越多的人开端涉足股票投资&#xff0c;开立证券账户也成为一个热门话题。但是&#xff0c;许多初学者或许会有疑问&#xff0c;个人开证券账户是否需求支付开户费呢&#xff1f;这个问题的答案并不是那么简略&#xff0c;需求考虑…...

大厂面试-16道面试题

1 java集合类有哪些&#xff1f; List是有序的Collection&#xff0c;使用此接口能够精确的控制每个元素的插入位置&#xff0c;用户能根据索引访问List中元素。常用的实现List的类有LinkedList&#xff0c;ArrayList&#xff0c;Vector&#xff0c;Stack。 ArrayList是容量…...

搭建GraphQL服务

js版 GraphQL在 NodeJS 服务端中使用最多 安装graphql-yoga: npm install graphql-yoga 新建index.js: const {GraphQLServer} require("graphql-yoga")const server new GraphQLServer({ typeDefs: type Query { hello(name:String):String! …...

数据仓库介绍及应用场景

数据仓库&#xff08;Data Warehouse&#xff09;是一个用于存储、管理、检索和分析大量结构化数据的集中式数据库系统。与传统的事务处理数据库不同&#xff0c;数据仓库是为了支持决策支持系统&#xff08;Decision Support Systems, DSS&#xff09;和业务智能&#xff08;B…...

代码随想录算法训练营Day56 | 动态规划(16/17) LeetCode 583. 两个字符串的删除操作 72. 编辑距离

动态规划马上来到尾声了&#xff0c;当时还觉得动态规划内容很多&#xff0c;但是也这么过来了。 第一题 583. Delete Operation for Two Strings Given two strings word1 and word2, return the minimum number of steps required to make word1 and word2 the same. In on…...

HTML+CSS+JavaScript 大学生网页设计制作作业实例代码 200套静态响应式前端网页模板(全网最全,建议收藏)

目录 1.介绍2.这样的响应式页面这里有200套不同风格的 1.介绍 资源链接 &#x1f4da;web前端期末大作业 (200套) 集合 Web前端期末大作业通常是一个综合性的项目&#xff0c;旨在检验学生在HTML、CSS和JavaScript等前端技术方面的能力和理解。以下是一些可能的Web前端期末大…...

CFimagehost私人图床本地部署结合cpolar内网穿透实现公网访问

文章目录 1.前言2. CFImagehost网站搭建2.1 CFImagehost下载和安装2.2 CFImagehost网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 4.公网访问测…...

uniapp瀑布流布局写法

首先我们要清楚瀑布流是什么&#xff1f; 瀑布流布局&#xff08;Waterfall Flow Layout&#xff09;&#xff0c;也称为瀑布流式布局&#xff0c;是一种常见的网页或移动应用布局方式&#xff0c;特点是元素以不规则的方式排列&#xff0c;就像瀑布中的流水一样&#xff0c;每…...

蓝桥杯 题库 简单 每日十题 day8

01 扫雷 题目描述 在一个n行列的方格图上有一些位置有地雷&#xff0c;另外一些位置为空。 请为每个空位置标一个整数&#xff0c;表示周围八个相邻的方格中有多少个地雷。 输入描述 输入的第一行包含两个整数n&#xff0c;m。 第2行到第n1行每行包含m个整数&#xff0c;相邻整…...

Keepalived 高可用(附带配置实例,联动Nginx和LVS)

Keepalived 一、Keepalived相关知识点概述1.1 单服务的风险&#xff08;单点故障问题&#xff09;1.2 一个合格的集群应该具备的特性1.3 VRRP虚拟路由冗余协议1.4 健康检查1.5 ”脑裂“现象 二、Keepalived2.1 Keepalived是什么&#xff1f;2.2 Keepalived体系主要模块及其作用…...

第二证券:今年来港股回购金额超700亿港元 9月近200家公司获增持

本年以来&#xff0c;港股上市公司回购力度不断增强。据恒生指数公司计算&#xff0c;到9月15日&#xff0c;本年以来港股回购金额到达735亿港元&#xff0c;占去年全年总额的70%。该公司预测&#xff0c;2023年港股回购金额可能到达929亿港元&#xff0c;是前5年年度平均水平的…...

Autosar基础——RTE简介

AutoSAR文章目录 AUTomotive Open System Architecture Autosar-简介和历史发展 Autosar-软件架构 Autosar软件组件-Application Layer介绍和SWC(Software Component)类型 Autosar-Runnables(可运行实体) Autosar-OS配置 Autosar IOC机制(核间通信) Autosar实践-CANTp Auto…...

几个国内可用的强大的GPT工具

前言&#xff1a; 人工智能发布至今&#xff0c;过去了九个多月&#xff0c;已经成为了我们不管是工作还是生活中一个重要的辅助工具&#xff0c;大大提升了效率&#xff0c;作为一个人工智能的自然语言处理工具&#xff0c;它给各大行业的提供了一个巨大的生产工具&#xff0c…...

《Python等级考试(1~6级)历届真题解析》专栏总目录

❤️ 专栏名称&#xff1a;《Python等级考试&#xff08;1~6级&#xff09;历届真题解析》 &#x1f338; 专栏介绍&#xff1a;中国电子学会《全国青少年软件编程等级考试》Python编程&#xff08;1~6级&#xff09;历届真题解析。 &#x1f680; 订阅专栏&#xff1a;订阅后可…...

在IntelliJ IDEA 中安装阿里P3C以及使用指南

在IntelliJ IDEA 中安装阿里P3C以及使用指南 1.关于阿里p3c1.1说明1.2什么是P3C插件1.3p3c的作用是什么 2 如何在IDEA中安装p3c2.1 插件安装2.2 插件使用 3.参考连接 1.关于阿里p3c 1.1说明 代码规范检查插件P3C&#xff0c;是根据《阿里巴巴java开发手册(黄山版)》转化而成的…...

DeepSeek-OCR实战教程:批量处理脚本编写与异步解析任务队列设计

DeepSeek-OCR实战教程&#xff1a;批量处理脚本编写与异步解析任务队列设计 1. 学习目标与场景引入 如果你正在处理大量的文档图片&#xff0c;比如扫描的合同、发票、报告或者历史档案&#xff0c;一张张上传到DeepSeek-OCR界面手动处理&#xff0c;不仅效率低下&#xff0c…...

Wan2.2-I2V-A14B性能调优:基于算法原理的模型推理加速策略

Wan2.2-I2V-A14B性能调优&#xff1a;基于算法原理的模型推理加速策略 1. 效果亮点预览 在RTX4090D显卡上&#xff0c;经过系统调优的Wan2.2-I2V-A14B模型展现出惊人的性能提升&#xff1a;单次推理耗时从原始的38ms降低至22ms&#xff0c;吞吐量提升近72%。更令人惊喜的是&a…...

避开Webots 2021b+的材质下载坑:保姆级配置2021a旧版本(附Ubuntu/PyCharm环境)

避开Webots 2021b的材质下载坑&#xff1a;保姆级配置2021a旧版本&#xff08;附Ubuntu/PyCharm环境&#xff09; 如果你最近尝试安装Webots最新版本时&#xff0c;遇到了材质无法下载的报错&#xff0c;这篇文章就是为你准备的。作为一个长期使用Webots进行机器人仿真的开发者…...

2026大模型应用爆发:504个案例揭示行业变革新机遇!

2025年&#xff0c;大模型技术如同一颗璀璨的新星&#xff0c;在各行各业绽放出耀眼光芒。从互联网、金融到能源制造、交通运输&#xff0c;再到医疗、教育、公共服务&#xff0c;展现出前所未有的活力和潜力。 大模型的应用不仅改变了企业的运营模式&#xff0c;提升了企业的竞…...

KKManager终极指南:三步轻松管理你的游戏Mod和插件

KKManager终极指南&#xff1a;三步轻松管理你的游戏Mod和插件 【免费下载链接】KKManager Mod, plugin and card manager for games by Illusion that use BepInEx 项目地址: https://gitcode.com/gh_mirrors/kk/KKManager KKManager是一款专为Illusion系列游戏设计的M…...

【AI工程化硬核考点】:FastAPI 2.0 + async/await + StreamingResponse三重协程调度机制精讲

第一章&#xff1a;FastAPI 2.0 异步 AI 流式响应 面试题汇总FastAPI 2.0 原生强化了对异步流式响应&#xff08;StreamingResponse&#xff09;的支持&#xff0c;尤其适用于大语言模型&#xff08;LLM&#xff09;推理、实时日志推送、AI 生成内容分块返回等场景。面试官常聚…...

Ubuntu 22.04 开机卡在/dev/sda3: clean的磁盘空间分析与扩容实战

1. 问题现象与初步诊断 当你兴冲冲地按下Ubuntu 22.04的开机键&#xff0c;却看到屏幕卡在/dev/sda3: clean这个神秘提示时&#xff0c;那种感觉就像开车时突然遇到路障——明明昨天还能正常使用&#xff0c;今天怎么就罢工了&#xff1f;这种情况我遇到过不止一次&#xff0c;…...

告别卡顿闪烁!在Cesium 1.134中集成SOG格式,让400万高斯秒级加载

突破性能瓶颈&#xff1a;Cesium 1.134集成SOG格式实现400万高斯秒级渲染 在三维地理空间可视化领域&#xff0c;Cesium一直是开发者构建高精度场景的首选引擎。但当项目涉及数百万级高斯泼溅数据时&#xff0c;传统加载方式往往导致令人崩溃的卡顿和视角移动时的闪烁问题。最近…...

Wan2.2-I2V-A14B开源大模型:支持ONNX导出与边缘设备轻量化部署探索

Wan2.2-I2V-A14B开源大模型&#xff1a;支持ONNX导出与边缘设备轻量化部署探索 1. 开箱即用的私有部署方案 Wan2.2-I2V-A14B是一款强大的文生视频开源大模型&#xff0c;专为RTX 4090D 24GB显存环境深度优化。这个私有部署镜像已经内置了完整的运行环境和所有必要组件&#x…...

Simple Runtime Window Editor:突破窗口分辨率限制的技术实现与应用指南

Simple Runtime Window Editor&#xff1a;突破窗口分辨率限制的技术实现与应用指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 一、场景化问题诊断&#xff1a;分辨率调整的现实挑战 1.1 专业设计工作流的…...