leetcode718. 最长重复子数组
一:题目
二:上码
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. 最长重复子数组相关推荐
- leetcode718 最长重复子数组
给两个整数数组 A 和 B ,返回两个数组中公共的.长度最长的子数组的长度. 示例 1: 输入: A: [1,2,3,2,1] B: [3,2,1,4,7] 输出: 3 解释: 长度最长的公共子数组 ...
- 求两个数组的最长重复子数组 Maximum Length of Repeated Subarray
为什么80%的码农都做不了架构师?>>> 问题: Given two integer arrays A and B, return the maximum length of ...
- 最长重复子数组最长公共子序列不相交的线
引言 这同样是两种类型的题目,有很多相似的地方和不同的地方,区别依然是连续和不连续之分. 最长重复子数组 给两个整数数组 A 和 B ,返回两个数组中公共的.长度最长的子数组的长度. 示例: 输入: ...
- 两个数组进行比较_LeetCode 718. 最长重复子数组 | Python
718. 最长重复子数组 题目来源:力扣(LeetCode)https://leetcode-cn.com/problems/maximum-length-of-repeated-subarray 题 ...
- 718. 最长重复子数组(JavaScript)
//dp[i][j] :以下标i - 1为结尾的A,和以下标j - 1为结尾的B,最长重复子数组长度为dp[i][j]. var findLength = function(nums1, nums2) ...
- LeetCode 718最长重复子数组
题目链接:力扣 子序列默认不连续,子数组默认连续 思路: 动态规划: 定义dp数组: dp ...
- Java实现 LeetCode 718 最长重复子数组(动态规划)
718. 最长重复子数组 给两个整数数组 A 和 B ,返回两个数组中公共的.长度最长的子数组的长度. 示例 1: 输入: A: [1,2,3,2,1] B: [3,2,1,4,7] 输出: 3 解释 ...
- LeetCode·718.最长重复子数组·动态规划
链接:https://leetcode.cn/problems/maximum-length-of-repeated-subarray/solution/-by-xun-ge-v-5he0/ 来源:力 ...
- 力扣-718最长重复子数组(dp)
力扣-718最长重复子数组 1.题目 给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 .长度最长的子数组的长度 . 示例 1: 输入:nums1 = [1,2,3,2,1], ...
最新文章
- 16 分频 32 分频是啥意思_Verilog 数字分频器的设计及验证
- C语言程序练习-L1-017 到底有多二 (15分)
- 写文件+三剑客+别名
- 圣地亚哥的计算机科学在哪个学院,加州大学圣地亚哥分校计算机科学在哪个学院?...
- 2021年阿里云采购季大促主会场全攻略
- 开源社群系统 ThinkSNS+ 0.7.4 版本发布
- Maven 本地仓库明明有jar包,pom文件还是报错解决办法(Missing artifact...jar)
- linux配置rabbitmq远程登陆,linux配置安装 RabbitMQ详细教程
- Atitit.git的存储结构and 追踪
- 回忆测试--------广告理论
- openwrt设置成无线ap模式
- 电脑中毒,文件夹都变成exe文件怎么办?
- 为什么html中使用不了样式,css不起作用是什么原因?
- html中calc属性什么意思,深入理解CSS calc属性
- 一将成,万骨枯,趣店上市背后的残酷游戏
- 我的北漂在路上--------时不时的停下脚步思考
- python 数据分析day4 Pandas 之 DataFrame
- 网络和网路互联的设计
- misra c编码规范个人整理总结/misra c 2012中文版-个人总结-【方便查询】
- CNN卷积神经网络 ILSVRC-2012
热门文章
- 如何使用vue组件搭建网页并打包发布
- C# .Net 视频下载功能(本机文件)及转发下载功能(Http远程文件)
- 【学生选课系统经典】C#与SQLSERVER连接:Windows应用工程案例
- 反序列化层遍历二叉树
- oracle进程结构中完成更新,Oracle 进程结构
- linux系统中scanf函数,Linux下scanf宽度控制问题
- mysql输出代码_mysql常用代码
- 【COMA】一种将团队回报拆分为独立回报的多智能体算法
- python创_Python创建Windows 服务
- mongodb spring 超时时间_拥抱NoSQL--谈Spring Data MongoDB的简单使用