六大算法之动态规划_leetcode迷宫最短路径

六大算法之动态规划_leetcode迷宫最短路径在两条独立的水平线上按给定的顺序写下 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/168556.html原文链接:https://javaforall.net

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


相关推荐

  • java hd seks_jodconverter-web/src/main/java/cn/keking/service/impl/AseKsReportServiceImpl.java · mes…

    java hd seks_jodconverter-web/src/main/java/cn/keking/service/impl/AseKsReportServiceImpl.java · mes…packagecn.keking.service.impl;importcn.keking.hutool.StrUtil;importcn.keking.render.AseKsTableRenderPolicy;importcn.keking.render.CustomReplaceOptionalTextPictureRefRenderPolicy;importcn.keking.s…

    2022年7月7日
    31
  • 基于arduino的光控窗帘_基于Arduino系统的智能窗帘设计与实现.doc

    基于arduino的光控窗帘_基于Arduino系统的智能窗帘设计与实现.doc摘要:跟随社会发展的潮流,现代科学技术正处于快速发展阶段,人们对智能家居的关注度也越来越高,人们开始寻求更加智能和舒适的生活及办公环境。智能遥控属于电子与信息工程的一个重要分支,在现代智能家居中有着良好的发展前景。本设计采用Arduino单片机来控制智能窗帘系统,实时监测室内温湿度情况并在LCD上显示,使用了红外遥控的技术,可以切换不同的工作模式从而来切换其控制方式,实现半自动控制、自动控制以及远…

    2022年6月23日
    33
  • Spss-kmeans聚类分析操作

    Spss-kmeans聚类分析操作目录一 聚类分析的意义二 距离的定义三 动态聚类 K meansCluster QuickCluster

    2025年9月28日
    5
  • 黑客[入门]

    黑客[入门]第1章黑客基础知识随着互联网技术的飞速发展,网络世界的安全性不断受到挑战。如果你要上网,就免不了遇到黑客的侵扰。本章就为大家介留一些最基本的黑客入门知识,揭密黑客常用的一些命令,当然这些微不足道的伎俩难以入侵戒备森严的网络,不过至少让初学者对黑客的“工作情形”有初步的认识。本章导读1.1黑客简单介绍最早的计算机于1946年在宾夕法尼亚大学出现,而最早的黑客出现于麻省理工学院(贝尔实验室也有)。最初的黑客一般都是一些高级的技术人员,他们热衷于挑战、崇尚自由并主张信息的共享。1…

    2022年5月8日
    67
  • pycharm中文安装包

    pycharm中文安装包pycharm中文安装包如果是自定义安装的,那么他的相应地址应该是下面提供中文安装包链接:https://pan.baidu.com/s/1pf3B-kwZVRwzrWBxj-oZ7g提取码:hduy  这也是俺自己正在用的pycharm中文安装包Pycharm中文安装包一般来说都是放在C:\…

    2022年5月16日
    51
  • linux pycharm2021激活码[在线序列号]

    linux pycharm2021激活码[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    133

发表回复

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

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