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

leetcode329+Longest Increasing Path in a Matrix+dfs记忆化搜索record

链接

class Solution {
public:
    int dfs(vector<vector<int>>& matrix, vector<vector<int>>& record, int x, int y, int lastVal){
        if(x<0||x>=matrix.size()||y<0||y>=matrix[0].size()) return 0;
        if(matrix[x][y] > lastVal){
            if(record[x][y]!=0) return record[x][y];
            int left = dfs(matrix, record, x, y-1, matrix[x][y])+1;
            int right = dfs(matrix, record, x, y+1, matrix[x][y])+1;
            int top = dfs(matrix, record, x-1, y, matrix[x][y])+1;
            int bottom = dfs(matrix, record, x+1, y, matrix[x][y])+1;
            record[x][y] = max(left, max(right, max(top, bottom)));
            return record[x][y];
        }
        return 0;
    }
    int longestIncreasingPath(vector<vector<int>>& matrix) {
        if(matrix.size()==0) return 0;
        vector<int> temp(matrix[0].size(), 0);
        vector<vector<int>> record(matrix.size(), temp);
        int longest = 0;
        for(int i=0; i<matrix.size(); i++){
            for(int j=0; j<matrix[0].size(); j++){
                longest = max(longest, dfs(matrix, record, i, j, -1));
            }
        }
        return longest;
    }
};

相关文章:

  • php mysql大学生求职招聘资源信息网zkfdzkf67a8
  • InteIIiJ IDEA 2023.版本发布了!!!
  • Spring MVC 之适配器模式
  • 八大排序算法总结
  • 【2023年4月美赛加赛】Y题:Understanding Used Sailboat Prices 建模思路、建模方案、数据来源、相关资料、Python代码
  • 区块链基础知识
  • Vue3学习笔记:了解并使用Pinia状态管理
  • 测试行业3年经验,从大厂裸辞后,面试阿里、字节全都一面挂,被面试官说我的水平还不如应届生
  • 【计组】性能指标——速度
  • 第一章 信息资源管理基础
  • java真有一个关键字叫strictfp啊
  • MySQL OCP888题解069-CHECK TABLE
  • Redis 官方可视化工具-RedisInsight
  • 基于springboot实现财务管理系统【源码+论文】分享
  • Parasoft帮助中移智行顺利获得A-SPICE L3和ISO26262功能安全认证证书
  • 【Leetcode】101. 对称二叉树
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 【347天】每日项目总结系列085(2018.01.18)
  • 【391天】每日项目总结系列128(2018.03.03)
  • C# 免费离线人脸识别 2.0 Demo
  • HTTP中GET与POST的区别 99%的错误认识
  • HTTP中的ETag在移动客户端的应用
  • Js基础知识(四) - js运行原理与机制
  • Logstash 参考指南(目录)
  • MySQL用户中的%到底包不包括localhost?
  • Rancher如何对接Ceph-RBD块存储
  • rc-form之最单纯情况
  • ubuntu 下nginx安装 并支持https协议
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 构建工具 - 收藏集 - 掘金
  • 基于webpack 的 vue 多页架构
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 漂亮刷新控件-iOS
  • 深度解析利用ES6进行Promise封装总结
  • #《AI中文版》V3 第 1 章 概述
  • #QT(串口助手-界面)
  • #大学#套接字
  • (pojstep1.1.2)2654(直叙式模拟)
  • (第一天)包装对象、作用域、创建对象
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (十一)图像的罗伯特梯度锐化
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • **CI中自动类加载的用法总结
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • ... 是什么 ?... 有什么用处?
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET Framework 服务实现监控可观测性最佳实践
  • .net 调用php,php 调用.net com组件 --
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .net操作Excel出错解决
  • @Documented注解的作用
  • @EnableConfigurationProperties注解使用