news 2026/9/3 5:11:56

力扣718 最长重复子数组 java实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣718 最长重复子数组 java实现

718.最长重复子数组

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

示例 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 <= nums1.length, nums2.length <= 1000
  • 0 <= nums1[i], nums2[i] <= 100

该题使用暴力解法明显时间复杂度较多,可以使用动态规划以空间换时间,定义动态规划数组dp[i][j] :以下标i - 1为结尾的nums1,和以下标j - 1为结尾的nums2,最长重复子数组长度为dp[i][j],两层循环遍历,若num1[i - 1] = nums2[j - 1] 则说明当前的nums1中的i - 1的位置和j - 1相同,在两者之前的长度上加一即可,例如nums1 = [1,2,3,2,1], nums2 = [3,2,1,4,7],i = 2,j = 2时, nums1[1] = nums[1] 在动态规划数组中说明在当前nums1的下标1位置和nums2的下标1相同,最长子序列只需在nums1的下标0和nums2的下表0的位置处的最长子数组加一即可,即dp[i][j] = dp[i - 1][j - 1] + 1

public static void main(String[] args) { // 测试用 int[] nums1 = {1,2,3,2,1}; int[] nums2 = {3,2,1,4,7}; System.out.println(findLength(nums1, nums2)); } public static int findLength(int[] nums1, int[] nums2) { int[][] dp = new int[nums1.length + 1][nums2.length + 1]; int res = 0; for (int i = 1; i <= nums1.length; i++) { for (int j = 1; j <= nums2.length; j++) { if (nums1[i - 1] == nums2[j - 1]){ dp[i][j] = dp[i - 1][j - 1] + 1; } res = Math.max(res, dp[i][j]); } } return res; }

以上为记录分享用,代码较差请见谅

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 13:31:41

django+Pythonuniapp的鲜花知识分享与销售商城系统的设计与实现小程序

文章目录 系统概述技术架构核心功能模块创新点应用价值 系统设计与实现的思路主要技术与实现手段源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 系统概述 该系统基于Django后端框架与Python语言开发&#xff0c;结合UniApp跨平台前端技…

作者头像 李华
网站建设 2026/9/2 22:40:12

如何借助EOR名义雇主服务实现企业运营的top效益?

在全球扩张的过程中&#xff0c;企业需要考虑多种因素以保障高效运营。EOR名义雇主服务正是解决这些挑战的关键工具。通过这项服务&#xff0c;企业能够快速适应各个市场的法律法规&#xff0c;实现合规用工。同时&#xff0c;EOR名义雇主提供全方位的支持&#xff0c;无论是薪…

作者头像 李华
网站建设 2026/9/2 4:30:58

等保到底要花多少钱?别再被报价单吓到了

很多非安全背景的同事,一听等保,脑子里自动翻译成一句话: “请第三方来测一测,给个证,完事。” 但现实是,等保的钱主要花在 四个方向: 定级、备案、测评的钱(明面上的) 安全设备和软件的钱(大头) 系统整改的人力和改造成本(隐形但很贵) 后续运维和复测的长期成本(…

作者头像 李华
网站建设 2026/9/2 23:25:22

CAD中如何创建多行文字和文字编辑?

浩辰CAD看图王电脑版创建多行文字功能&#xff0c;可以很容易帮我们实现在图纸上记录大量的文字。可以是一段&#xff0c;也可以是多段&#xff0c;可详细记录内容。 今天就为大家简单介绍下浩辰CAD看图王电脑版如何创建多行文字的功能&#xff1f; 1、打开图纸&#xff0c;切…

作者头像 李华
网站建设 2026/9/2 23:25:39

Java后端打工人必备:Redis从入门到精通!

Redis这玩意不用多说&#xff0c;Java后端打工人就没有没接触过的&#xff0c;现在出去面试基本上是必问项&#xff1b;而且在工作中在项目中还能起很大的作用。它不仅能减少数据库的操作、并且你还可以利用redis的一些数据结构如set sorted set 解决一些特定的问题、利用单线程…

作者头像 李华
网站建设 2026/9/3 0:17:52

Java程序员须知:Spring全家桶学习顺序千万别搞错!

Spring可以说是我们Java入门时最先接触的框架了&#xff0c;只要你是Java程序员&#xff0c;它就是你绕不开必须要学习的一个点。对于我们这些有工作经验的Javaer来说&#xff0c;你不仅要学好Spring&#xff0c;还需要学好后续由它衍生一系列的框架组件&#xff08;我们一般把…

作者头像 李华