博客
关于我
LeetCode1035—不相交的线(java版)
阅读量:685 次
发布时间:2019-03-17

本文共 1385 字,大约阅读时间需要 4 分钟。

我们可以使用动态规划来解决这个问题。目标是在两条水平线上绘制尽可能多的连接线,前提是连接不相交且数字对应相同。

  • 动态规划定义

    • 定义一个二维数组 dp,其中 dp[i][j] 表示在处理到 A 的前 i 个元素和 B 的前 j 个元素时可以绘制的最大连线数目。
  • 状态转移方程

    • 如果 A[i-1] 等于 B[j-1],则我们可以在此处绘制一条新连线,所以 dp[i][j] = dp[i-1][j-1] + 1
    • 否则,dp[i][j] 取决于上方或左方的值中的最大者,即 dp[i][j] = max(dp[i][j-1], dp[i-1][j])
  • 初始化边界条件

    • dp[0][*]dp[*][0] 初始化为0,因为没有元素时无法绘制连线。
  • 填充动态规划表

    • 遍历 AB 的所有元素,逐步计算每个 dp[i][j] 的值,并更新全局最大值。
  • 通过这个方法,我们可以有效地计算出最大连线数,同时考虑了所有可能的绘制路径,避免了不必要的交叉。

    最终的代码实现如下:

    功能:计算可以绘制的最大连线数输入:两条整数序列A和B输出:最大连线数实现思路:使用动态规划,逐个比较A和B的元素,找出最长非交叉连接的数量。

    题目描述:

    标签:数组

    在两条水平线上按顺序写下整数A和B中的数字。可以绘制连接A[i]和B[j]的线,只要满足A[i]等于B[j]且线不交叉。目标找出最多可绘制的线条数。

    代码:

    class Solution { public int maxUncrossedLines(int[] A, int[] B) { int n1 = A.length; int n2 = B.length; int[][] dp = new int[n1 + 1][n2 + 1]; int result = 0; for (int i = 1; i <= n1; i++) { for (int j = 1; j <= n2; j++) { if (A[i - 1] == B[j - 1]) { dp[i][j] = dp[i-1][j-1] + 1; } else { dp[i][j] = Math.max(dp[i][j-1], dp[i-1][j]); } if (dp[i][j] > result) { result = dp[i][j]; } } } return result; } }

    转载地址:http://nadhz.baihongyu.com/

    你可能感兴趣的文章
    Qt开发——简易网络浏览器(一)
    查看>>
    Qt开发——简易成绩登记系统
    查看>>
    Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句
    查看>>
    Postgresql中PL/pgSQL的游标、自定义函数、存储过程的使用
    查看>>
    Postgresql中的表结构和数据同步/数据传输到Mysql
    查看>>
    Postgresql中自增主键序列的使用以及数据传输时提示:错误:关系“xxx_xx_xx_seq“不存在
    查看>>
    postgreSQL入门命令
    查看>>
    PostgreSQL删除数据库报"ERROR: There is 1 other session using the database."
    查看>>
    Qt开发——爱情公寓人事管理系统
    查看>>
    PostgreSQL和Oracle两种数据库有啥区别?如何选择?
    查看>>
    Postgresql在Windows中使用pg_dump实现数据库(指定表)的导出与导入
    查看>>
    PostgreSQL在何处处理 sql查询之四
    查看>>
    postgresql基本使用
    查看>>
    PostgreSQL学习总结(10)—— PostgreSQL 数据库体系架构
    查看>>
    PostgreSQL学习总结(11)—— PostgreSQL 常用的高可用集群方案
    查看>>
    Qt开发——多线程网络时间客户端
    查看>>
    PostgreSQL学习总结(13)—— PostgreSQL 15.8 如何成就数据库性能王者?
    查看>>
    PostgreSQL学习总结(13)—— PostgreSQL 目录结构与配置文件 postgresql.conf 详解
    查看>>
    PostgreSQL学习总结(1)—— PostgreSQL 入门简介与安装
    查看>>
    PostgreSQL学习总结(2)—— PostgreSQL 语法
    查看>>