一:题目

二:上码

class Solution {public:/**思路:1.分析题意:1  2  3  6  7  41  2  6  7  4  3这里我们先遇到的1 2 但后来我们又遇见了6 7 4 那么我们的要的答案就是动态变化的2.动态规划五步走1>:确定dp数组以及下标的含义dp[i][j] 表示 以下标i-1结尾的A数组和以下标j-1结束的B数组的  最长重复子数组长度这里我们用i-1和j-1 主要是考虑当我们比较最后一个元素的时候即: dp[i][j] = dp[i-1][j-1] + 1;//如果最后一个元素相等的话 那么//dp[i-1][j-1]表示的是我们累加的最后一个元素2>:确定dp数组的状态递推公式在这个组成的二维矩阵中  我们是需要 左上角的值进行累加  因为我们是要求的是连续的长度所以 dp[i][j] = dp[i-1][j-1] + 1;//dp[i-1][j-1] 就是左上角的值3>:确定dp数组的初始化初始化为0即可4>确定dp数组的遍历顺序外层A数组  内层B数组5>:举例验证dp数组下标范围  0  1  2  3  4  5数组下标范围     0  1  2  3  4   1  2  3  2  10  0  0  0  0  03  0  0  0  1  0  02  0  0  1  0  2  01  0  1  0  0  0  34  0  0  0  0  0  07  0  0  0  0  0  0我们之所以将dp数组的范围扩大一位  是因为我们求取第一个值相等的时候  需要用到dp[i-1][j-1]也就是左上角的值,所以我们扩大一位那么与之一块改变的还需注意的是 我们dp数组下标的含义  我们都是从i-1和j-1来说的  只有这样我们才能和num1,num2数组下标对应上例如本题的结果  dp[3][5] 表示的就是以下标2结尾的num2数组和以下标4结尾的num1数组 最长的重复子数组*/int findLength(vector<int>& nums1, vector<int>& nums2) {vector<vector<int> >dp(nums1.size()+1,vector<int>(nums2.size()+1,0));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] = dp[i-1][j-1] + 1;}if(dp[i][j] > ans) ans = dp[i][j];}}return ans;}
};

leetcode718. 最长重复子数组相关推荐

  1. leetcode718 最长重复子数组

    给两个整数数组 A 和 B ,返回两个数组中公共的.长度最长的子数组的长度. 示例 1: 输入: A: [1,2,3,2,1] B: [3,2,1,4,7] 输出: 3 解释:  长度最长的公共子数组 ...

  2. 求两个数组的最长重复子数组 Maximum Length of Repeated Subarray

    为什么80%的码农都做不了架构师?>>>    问题: Given two integer arrays A and B, return the maximum length of ...

  3. 最长重复子数组最长公共子序列不相交的线

    引言 这同样是两种类型的题目,有很多相似的地方和不同的地方,区别依然是连续和不连续之分. 最长重复子数组 给两个整数数组 A 和 B ,返回两个数组中公共的.长度最长的子数组的长度. 示例: 输入: ...

  4. 两个数组进行比较_LeetCode 718. 最长重复子数组 | Python

    718. 最长重复子数组 题目来源:力扣(LeetCode)https://leetcode-cn.com/problems/maximum-length-of-repeated-subarray 题 ...

  5. 718. 最长重复子数组(JavaScript)

    //dp[i][j] :以下标i - 1为结尾的A,和以下标j - 1为结尾的B,最长重复子数组长度为dp[i][j]. var findLength = function(nums1, nums2) ...

  6. LeetCode 718最长重复子数组

    题目链接:力扣                                                子序列默认不连续,子数组默认连续 思路: 动态规划: 定义dp数组:         dp ...

  7. Java实现 LeetCode 718 最长重复子数组(动态规划)

    718. 最长重复子数组 给两个整数数组 A 和 B ,返回两个数组中公共的.长度最长的子数组的长度. 示例 1: 输入: A: [1,2,3,2,1] B: [3,2,1,4,7] 输出: 3 解释 ...

  8. LeetCode·718.最长重复子数组·动态规划

    链接:https://leetcode.cn/problems/maximum-length-of-repeated-subarray/solution/-by-xun-ge-v-5he0/ 来源:力 ...

  9. 力扣-718最长重复子数组(dp)

    力扣-718最长重复子数组 1.题目 给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 .长度最长的子数组的长度 . 示例 1: 输入:nums1 = [1,2,3,2,1], ...

最新文章

  1. 16 分频 32 分频是啥意思_Verilog 数字分频器的设计及验证
  2. C语言程序练习-L1-017 到底有多二 (15分)
  3. 写文件+三剑客+别名
  4. 圣地亚哥的计算机科学在哪个学院,加州大学圣地亚哥分校计算机科学在哪个学院?...
  5. 2021年阿里云采购季大促主会场全攻略
  6. 开源社群系统 ThinkSNS+ 0.7.4 版本发布
  7. Maven 本地仓库明明有jar包,pom文件还是报错解决办法(Missing artifact...jar)
  8. linux配置rabbitmq远程登陆,linux配置安装 RabbitMQ详细教程
  9. Atitit.git的存储结构and 追踪
  10. 回忆测试--------广告理论
  11. openwrt设置成无线ap模式
  12. 电脑中毒,文件夹都变成exe文件怎么办?
  13. 为什么html中使用不了样式,css不起作用是什么原因?
  14. html中calc属性什么意思,深入理解CSS calc属性
  15. 一将成,万骨枯,趣店上市背后的残酷游戏
  16. 我的北漂在路上--------时不时的停下脚步思考
  17. python 数据分析day4 Pandas 之 DataFrame
  18. 网络和网路互联的设计
  19. misra c编码规范个人整理总结/misra c 2012中文版-个人总结-【方便查询】
  20. CNN卷积神经网络 ILSVRC-2012

热门文章

  1. 如何使用vue组件搭建网页并打包发布
  2. C# .Net 视频下载功能(本机文件)及转发下载功能(Http远程文件)
  3. 【学生选课系统经典】C#与SQLSERVER连接:Windows应用工程案例
  4. 反序列化层遍历二叉树
  5. oracle进程结构中完成更新,Oracle 进程结构
  6. linux系统中scanf函数,Linux下scanf宽度控制问题
  7. mysql输出代码_mysql常用代码
  8. 【COMA】一种将团队回报拆分为独立回报的多智能体算法
  9. python创_Python创建Windows 服务
  10. mongodb spring 超时时间_拥抱NoSQL--谈Spring Data MongoDB的简单使用