蓝桥杯入门即劝退(十七)最长重复子数组(dp问题)

news/2024/11/18 1:30:44/

------持续更新蓝桥杯入门系列算法实例--------

如果你也喜欢Java和算法,欢迎订阅专栏共同学习交流!

你的点赞、关注、评论、是我创作的动力!

-------希望我的文章对你有所帮助--------

前言:今天又回顾了一部分之前写过的算法题,加深记忆和印象,不断思考总结才能够掌握算法题中的各种技巧和细节,失之毫厘谬以千里。今天的这道题目也挺有意思的,刚开始以为自己能够做出来,但总差点思路,研究一番后才醒悟。与你共享我的思考成果!

一、题目描述

给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度 

示例 1:

输入:nums1 = [1,2,3,2,1], nums2 = [3,2,1,4,7]
输出:3
解释:长度最长的公共子数组是 [3,2,1] 。

示例 2:

输入:nums1 = [0,0,0,0,0], nums2 = [0,0,0,0,0]
输出:5

解题思路: 1、这题有些许类似前面题目中字符串最长公共前缀,但是总体更难一些,以为所求的子数组与子序列不同,在于必须是有序的。

2、例如数组 Array[8,4,7,6,4],其子数组必须是连续的,{8,4,6},{4,6}就不行,因为数组元素位置不可改变。

3、采用dp(动态规划)来完成,新建一个dp二维数组,且其大小为(A+1)*(B+1)A、B分别是两个数组的长度。

4、设置两个循环,对于两个数组中的元素遍历其比对,如果有相同位置的元素相同即dp[][]+1,最好手动去画一画,就能理解。(未赋值的元素默认是0)

5、最后,使用Math.max(),如果找到更长的数组长度,更新数据,最后return即可。

二、代码实现

public int findLength(int[] nums1, int[] nums2) {int Result=0;int dp[][]=new int [nums1.length+1][nums2.length+1];for(int i=1;i<nums1.length+1;i++)for(int j=1;j<nums2.length+1;j++){if(nums1[i-1]==nums2[j-1]){dp[i][j]=dp[i-1][j-1]+1;Result=Math.max(Result,dp[i][j]);}}return Result;}


http://www.ppmy.cn/news/4919.html

相关文章

数据结构C语言版 —— 队列+循环队列实现

文章目录队列1.概念2. 生活中队列应用3. 队列的实现初始化队列入队列出队列获取队头元素获取队尾元素获取队列中元素个数判断队列是否为空销毁队列2. 循环队列队列 1.概念 和栈相反&#xff0c;队列(queue)是一种先进先出的线性表&#xff0c;它只允许在一端进行插入&#xf…

Qt扫盲-QTableWidget理论总结

QTableWidget理论总结1. 概述2. QTableWidgetItem 概述3. 表头设置4. 常用功能5. 常用信号6. 槽函数7. 外观1. 概述 QTableWidget 是 Qt 提供的一个简单方便、标准的表格显示类。QTableWidget 中的 单元格数据 由 QTableWidgetItem 显示如果 想要一个使用你自己定义modle 的表…

【云原生进阶之容器】第一章Docker核心技术1.7节——Docker镜像技术剖析

1 容器镜像概述 1.1 什么是镜像 镜像就是一个可执行独立运行的软件包。包含应用运行所必须的文件和依赖包;镜像可以理解为类或者模板,只要在容器的环境下开箱即用; Docker容器与镜像的关系: 1.2 bootfs和rootfs 通常而言,Linux的操作系统由两类文件系统组成:bootfs…

[附源码]Python计算机毕业设计Django医院门诊管理信息系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

产品更新-镭速Raysync v6.5.8.0版本发布

镭速版本在近期发布了v6.5.8.0版本&#xff0c;下面我们一起来看下做了哪些更新。 功能一、支持敏感词检测 互联网时代的发展&#xff0c;用户不断产生海量信息&#xff0c;从而也导致了垃圾信息增加&#xff0c;如政治敏感词、违禁词、垃圾广告、色情、血腥暴力等不良信息&am…

怎么提高dede程序安全性,安全需要删除哪些文件一下教你解决

想必很多人用织梦(DEDE)经常会遇到网站挂马这些问题 下面讲解下针对DEDE网站的安全设置织梦安全需要删除哪些文件一下教你解决,只要你按照以下三点: 操作可避免99% 网站被挂马的情况 一 精简设置篇: 不需要的功能统统删除。比如不需要会员就将member文件夹删除。删除多余…

Hadoop学习笔记——MapReduce

文章目录一、MapReduce概述1.1、MapReduce定义1.2、MapReduce优缺点1.2.1 优点1.2.2 缺点1.3、MapReduce核心思想1.4、MapReduce进程1.5、官方WordCount源码1.6、常用数据序列化类型1.7、MapReduce程序规范1.8、 WordCount案例实操1.8.1 本地测试1.8.2 提交到集群测试一、MapRe…

截止12.19--之前的再说,就先说一下今天的事

12/19 错怪colab 软链接实现永久 试一下我在ssh传上文件以后&#xff0c;1080卡还能不能看见了&#xff1a;能&#xff0c;得传到data里。可以在ssh上加上 ln -s 找不到GPU是镜像问题 出现找不到显卡的问题 需要换个镜像 所以速速自学docker吧&#xff0c;太被动了 加号做连…