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

动态规划---不相交的线

题目:

在两条独立的水平线上按给定的顺序写下 nums1nums2 中的整数。

现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足:

  •  nums1[i] == nums2[j]
  • 且绘制的直线不与任何其他连线(非水平线)相交。

请注意,连线即使在端点也不能相交:每个数字只能属于一条连线。

以这种方法绘制线条,并返回可以绘制的最大连线数。

思路:

1.确定dp数组及含义

dp[i][j]代表长度[0,i-1]的数组nums1,长度[0,j-1]的数组nums2的最长公共子序列长度

2.确定递推公式

如果nums1[i]=nums2[j],那么遇到了一个相同的数字,dp[i][j]=dp[i-1][j-1]+1

如果nums1[i]不等于nums2[j],那么dp[i][j]=max(dp[i-1][j],dp[i][j-1])

3.初始化dp数组

所有元素初始化为0

4.确定遍历顺序

外层for循环遍历nums1数组,内层for循环遍历nums2数组,从小到大遍历

代码:

    public int maxUncrossedLines(int[] nums1, int[] nums2) {int[][] dp=new int[nums1.length+1][nums2.length+1];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;}else{dp[i][j]=Math.max(dp[i-1][j],dp[i][j-1]);}}}return dp[nums1.length][nums2.length];}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【前端】ref引用的作用
  • Golang、Python、C语言、Java的圆桌会议
  • Vue.js 计算属性
  • 数据结构:堆的算法
  • Nginx 文件名逻辑漏洞(CVE-2013-4547)
  • ESP8266做httpServer提示Header fields are too long for server to interpret
  • 【论文分享精炼版】 sNPU: Trusted Execution Environments on Integrated NPUs
  • NAT技术
  • vue3 +百度地图 实现 地点检索,输入联想,经纬度,逆地理编码,创建标记,label等
  • LAMP+WordPress
  • 15、Python如何获取文件的状态
  • 测试工具笔记
  • 2024.9.15周报
  • ThinkPHP8出租屋管理系统
  • 2011年全国硕士研究生入学统一考试计算机科学与技术
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • Android框架之Volley
  • ECMAScript入门(七)--Module语法
  • github指令
  • Java基本数据类型之Number
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Vue官网教程学习过程中值得记录的一些事情
  • 分享一份非常强势的Android面试题
  • 排序算法学习笔记
  • 什么软件可以剪辑音乐?
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 线上 python http server profile 实践
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 追踪解析 FutureTask 源码
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • # Redis 入门到精通(一)数据类型(4)
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #考研#计算机文化知识1(局域网及网络互联)
  • #如何使用 Qt 5.6 在 Android 上启用 NFC
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (算法二)滑动窗口
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)用.Net的File控件上传文件的解决方案
  • *算法训练(leetcode)第三十九天 | 115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .Net Core 笔试1
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 简介及区别
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET基础篇——反射的奥妙
  • .NET开发者必备的11款免费工具
  • .Net中的设计模式——Factory Method模式
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...