六大算法之动态规划_动态规划100题

六大算法之动态规划_动态规划100题在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足满足:nums1[i] == nums2[j]且绘制的直线不与任何其他连线(非水平线)相交。请注意,连线即使在端点也不能相交:每个数字只能属于一条连线。以这种方法绘制线条,并返回可以绘制的最大连线数。示例 1:输入:nums1 = [1,4,2], nums2 = [1,2,4]输出:2解释:可以画出两条不交叉的

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

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

nums1[i] == nums2[j]
且绘制的直线不与任何其他连线(非水平线)相交。
请注意,连线即使在端点也不能相交:每个数字只能属于一条连线。

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

示例 1:


输入:nums1 = [1,4,2], nums2 = [1,2,4]
输出:2
解释:可以画出两条不交叉的线,如上图所示。 
但无法画出第三条不相交的直线,因为从 nums1[1]=4 到 nums2[2]=4 的直线将与从 nums1[2]=2 到 nums2[1]=2 的直线相交。
示例 2:

输入:nums1 = [2,5,1,2,5], nums2 = [10,5,2,1,5,2]
输出:3
示例 3:

输入:nums1 = [1,3,7,1,7,5], nums2 = [1,9,2,5,1]
输出:2
 

提示:

1 <= nums1.length <= 500
1 <= nums2.length <= 500
1 <= nums1[i], nums2[i] <= 2000

动态规划

const int N = 2010;
const int M = 510;
int Hash[N];
int f[M][M] = { 
   0};
class Solution { 
   
public:
    int maxUncrossedLines(vector<int>& nums1, vector<int>& nums2) { 
   
        int n = nums1.size(),m = nums2.size();
        memset(Hash,0,sizeof Hash);
        for(int j = 1;j <= m;j ++){ 
   
            Hash[nums2[j - 1]] = j;
            for(int i = 1;i <= n;i ++){ 
   
                f[i][j] = f[i - 1][j];
                if(Hash[nums1[i - 1]] != 0){ 
   
                    f[i][j] = max(f[i][j],f[i - 1][Hash[nums1[i - 1]] - 1] + 1);
                }
            }
        }
        return f[n][m];
    }
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169069.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ide激活码【中文破解版】

    (ide激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~70YZDJVTFP-eyJsaWNlbnNlSWQiOi…

    2022年3月27日
    45
  • L0/L1/L2/无穷范数

    L0范数:向量中非零元素的个数L1范数:向量中各个元素绝对值的和L2范数:向量中元素平方的和,再开方;即向量的模长无穷范数:向量中各个元素绝对值的最大值 关于范数,有个好文章:http://blog.csdn.net/zouxy09/article/details/24971995重要部分贴过来(感谢作者): 好了,这里兑现上面的承诺,来直观的聊聊L1和L2的差别,…

    2022年4月7日
    85
  • pycharm配置django环境_pycharm的terminal默认环境

    pycharm配置django环境_pycharm的terminal默认环境PyCharmDatabaseserverTimezonePyCharm中有提供视图化的数据库工具——Database,在使用这个工具的时候,因为时区设置的问题,会导致连接不成功。报错信息如下:Serverreturnsinvalidtimezone.Goto’Advanced’tabandset’serverTimezone’propertymanually….

    2022年8月30日
    5
  • Coredump(tracedump)

    引言当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中(core文件),这种行为就叫做CoreDump或者叫做‘核心转储’,利用coredump可以帮助我们快速定位程序崩溃位置开启coredump终端输入命令:ulimit-a用来显示对进程的一些限制限制,其中第一行表示了core文件最大的大小限制(单位为blocks)默认是…

    2022年4月12日
    92
  • MySQL字段重复出现多少次

    MySQL字段重复出现多少次

    2020年11月19日
    421
  • SSM整合(基于XML配置方式)

    SSM整合(基于XML配置方式)我们整合SSM框架时,大部分都是基于注解+XML配置方式。只因为结合这两种方法能够实现同样的效果,而且会更加的轻松。所以在此推荐朋友们用注解+XML配置的方式,基于注解+XML配置方式会另写一篇。但是有朋友和我说,怎么用纯XML方式整合SSM呢?我做了一个入门的整理,如果不足,请多多指教。本文是基于XML配置方式整合SSM框架,由于本人不太推荐这种方式。首先可以看一下完整的目录结构…

    2022年5月11日
    56

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号