六大算法之动态规划_动态规划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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • spring aop的实现_ssh框架工作原理及流程

    spring aop的实现_ssh框架工作原理及流程Spring的AOP实现原理,酝酿了一些日子,写博客之前信心不是很足,所以重新阅读了一边AOP的实现核心代码,而且又从网上找了一些SpringAop剖析的例子,但是发现挂羊头买狗肉的太多,标题高大上,内容却大部分都是比较浅显的一些介绍,可能也是由于比较少人阅读这部分的核心代码逻辑把,然后写这部分介绍的人估计也是少之又少,不过说实话,SpringAop的核心原理实现介绍确实不太好写,里面涉及的类

    2022年9月14日
    2
  • 进口跨境电商erp系统_东南亚的电商平台

    进口跨境电商erp系统_东南亚的电商平台【上马ERP】专注东南亚本地电商市场,对接shopeeLazadatokopediaJD.idBilbilAkulaku等电商平台一套根据东南亚本地电商需求深度订制的ERP/WMS仓储系统!上马特色功能:【自动处理pickupGo-jek,Gosend,Grad订单】【自动打印快递面单】:美观、高效、准确、效率【自动更新平台订单】:结合仓库现有库存,自动更新平台库存,100%防止超卖;【智能化仓库管理】:智能生成拣货清单,高效准确管理仓库;【实时校验订…

    2022年9月20日
    2
  • EditPlus正则表达式替换字符串详解

    EditPlus正则表达式替换字符串详解EditPlus的查找,替换,文件中查找支持以下的正则表达式:ExpressionDescription\tTabcharacter.\nNewline..Matchesanycharacter.|Eitherexpressiononitsleftandrightsidematchesthetargetstring.Forexa

    2022年5月13日
    197
  • 《Python 快速入门》一千个程序员有一千套编码规范[通俗易懂]

    《Python 快速入门》一千个程序员有一千套编码规范[通俗易懂]一千个读者有一千个哈姆莱特。–莎士比亚一千个程序员有一千套编码规范。–不吃西红柿

    2022年9月22日
    3
  • keil5使用教程

    keil5使用教程简单介绍keil5得使用教程。

    2022年5月28日
    56
  • win32中SetCapture 和 ReleaseCapture的使用

    win32中SetCapture 和 ReleaseCapture的使用     最近在用win32写《visualC++经典游戏程序设计》中的扫雷游戏,在写到鼠标点击雷区的时候用到了SetCapture,和ReleaseCapture这对系统函数。那么为什么需要用到鼠标捕获的函数呢?我错误地认为鼠标的跟踪可以由Point进行传值处理,就能实现我想要的功能,但是我却疏忽了如果我的鼠标按下的时候把鼠标移除窗口外面的情况,这种情况的时候鼠标是在外面的,那么当我把鼠标弹起的时候鼠标的位置就不在扫雷窗口里面了,因此我需要在按下鼠标的时候捕获鼠标的位置,这样就解决了鼠标不在窗口里面的

    2022年6月6日
    32

发表回复

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

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