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

(动态规划 最长重复子数组)leetcode 718

思路就是建立一个二维的dp数组,只要nums1[i]==nums2[j](nums1和nums2出现重复元素就置1  并加上左上角的值)

为什么代码是nums1 i-1和nums2 i-1

答:因为i和j以1为初始值开始遍历的

为什么要这么做并且为什么要加dp【i-1】【j-1】?

我们观察dp数组,发现dp【i】【j】的左上角为1就是连续的重复子串,那就将所有的dp【i】【j】都加上左上角的值,ans再遍历的过程中同时取最大值就是我们要的答案

这也是为什么我们会在dp[i][j]多加上一行一列的原因,防止加上后越界

class Solution {static const int N = 1e3+7; int dp[N][N];
public:int findLength(vector<int>& nums1, vector<int>& nums2) {int ans=0;for(int i=1;i<=nums1.size();i++){for(int j=1;j<=nums2.size();j++){if(nums1[i-1]==nums2[j-1])dp[i][j]=1+dp[i-1][j-1];ans=max(ans,dp[i][j]);}}return ans;}
};

http://www.lryc.cn/news/545440.html

相关文章:

  • SFP+(Enhanced Small Form-factor Pluggable)详解
  • 计算机毕业设计Hadoop+Spark+DeepSeek-R1大模型音乐推荐系统 音乐数据分析 音乐可视化 音乐爬虫 知识图谱 大数据毕业设计
  • Deepseek对ChatGPT的冲击?
  • 【Python 初级函数详解】—— 参数沙漠与作用域丛林的求生指南
  • 极客大学 java 进阶训练营怎么样,图文详解
  • 机器人学习模拟框架 robosuite (3) 机器人控制代码示例
  • 玩转python: 几个案例-掌握贪心算法
  • 腾讯集团软件开发-后台开发方向内推
  • 哈希碰撞攻防战——深入浅出Map/Set的底层实现
  • 深度解析Ant Design Pro 6开发实践
  • 用大白话解释基础框架Spring Boot——像“装修套餐”一样简单
  • 第十三届蓝桥杯大赛软件赛决赛C/C++ 大学 B 组
  • java后端开发day25--阶段项目(二)
  • 岚图汽车2月销售8013辆,岚图知音硬核引领智能出行
  • 【CSS—前端快速入门】CSS 常用样式
  • 【软考-架构】1.3、磁盘-输入输出技术-总线
  • Linux软连接与时区日期
  • (十)Mapbox GL JS 中点击 Marker 时获取与该 Marker 相关的自定义数据的解决办法
  • PyCharm怎么集成DeepSeek
  • (七)消息队列-Kafka 序列化avro(传递)
  • js基础二
  • WSBDF レクチア 定义2 引理3 wsbdf的乘子
  • Qt之QStateMachine等待
  • Wireshark 插件开发实战指南
  • 基于SpringBoot的“青少年心理健康教育网站”的设计与实现(源码+数据库+文档+PPT)
  • 23-整数转罗马数字
  • SpringBoot+Redis+Mybatis-plus黑马点评
  • 深入剖析 OpenCV:全面掌握基础操作、图像处理算法与特征匹配
  • 【C语言显示Linux系统参数】
  • 突破Ajax跨域困境,解锁前端通信新姿势