代码随想录算法训练营第五十三天|1143.最长公共子序列 、 1035.不相交的线、 53. 最大子序和

1143

题目:

给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。

题目链接:1143. 最长公共子序列 - 力扣(LeetCode)

思路:

动态规划,与最长公共子数组相似,但是子数组要求是连续的,这个只需要次序相同,所以递推公式不同。

详情:代码随想录 (programmercarl.com)

代码:

class Solution {public int longestCommonSubsequence(String text1, String text2) {int len1=text1.length();int len2=text2.length();int result = 0;int [][] dp =new int[len1+1][len2+1];for(int i=1;i<=len1;i++){for(int j=1;j<=len2;j++){if(text1.charAt(i-1)==text2.charAt(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[len1][len2];}
}

1035

题目:

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

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

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

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

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

题目链接:1035. 不相交的线 - 力扣(LeetCode)

思路:

与上一题几乎完全相同。

详情:代码随想录 (programmercarl.com)

代码:

class Solution {public int maxUncrossedLines(int[] nums1, int[] nums2) {int len1 = nums1.length;int len2 = nums2.length;int[][] dp = new int[len1 + 1][len2 + 1];for (int i = 1; i <= len1; i++) {for (int j = 1; j <= len2; 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[len1][len2];}
}

53

题目:

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

子数组是数组中的一个连续部分。

详情:53. 最大子数组和 - 力扣(LeetCode)

思路:

动态规划,主要是递推公式。

详情:代码随想录 (programmercarl.com)

代码:

    public static int maxSubArray(int[] nums) {if (nums.length == 0) {return 0;}int res = nums[0];int[] dp = new int[nums.length];dp[0] = nums[0];for (int i = 1; i < nums.length; i++) {dp[i] = Math.max(dp[i - 1] + nums[i], nums[i]);res = res > dp[i] ? res : dp[i];}return res;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/4521.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索区块链世界:赋能创新,揭示区块链媒体发稿的影响力-世媒讯

区块链&#xff0c;这个由“区块”和“链”组成的概念&#xff0c;可能在您眼中充满神秘和复杂&#xff0c;但其实甚至无所不在&#xff0c;它正静悄悄地改变着我们日常生活的方方面面&#xff0c;从金融到媒体&#xff0c;从医疗到教育。 我们来揭开区块链的神秘面纱。区块链…

VRRP基础

1.基本概念 VRRP(Virtual Router Redundancy protocol,虚拟路由冗余协议&#xff09; VRRP能够在不改变组网的情况下&#xff0c;将多台路由器虚拟成一个虚拟路由器&#xff0c;通过配置虚拟路由器的IP地址为默认网关&#xff0c;实现网关的备份。 VRRP协议版本为VRRPv2&…

SQLServer条件查询,排序

一.常用的运算符 &#xff1a;相等 !&#xff1a;不等 >&#xff1a;大于 <&#xff1a;小于 >&#xff1a;大于等于 <&#xff1a;小于等于 IS NULL&#xff1a;为空 IS NOT NULL&#xff1a;不为空 in&#xff1a;在其中 like&#xff1a;模糊查询 BE…

Java多线程基础

Java多线程 文章目录 Java多线程一、线程介绍及相关概念二、创建和启动线程2.1 Thread类的常用结构2.2 创建线程法1&#xff1a;继承Thread类&#xff08;分配线程对象&#xff09;2.3 创建线程法2&#xff1a;实现Runnable接口&#xff08;创建线程的目标对象&#xff09;2.4 …

揭示C++设计模式中的实现结构及应用——行为型设计模式

简介 行为型模式&#xff08;Behavioral Pattern&#xff09;是对在不同的对象之间划分责任和算法的抽象化。 行为型模式不仅仅关注类和对象的结构&#xff0c;而且重点关注它们之间的相互作用。 通过行为型模式&#xff0c;可以更加清晰地划分类与对象的职责&#xff0c;并…

易错知识点(学习过程中不断记录)

快捷键专区&#xff1a; 注释&#xff1a;ctrl/ ctrlshift/ 保存&#xff1a;ctrls 调试&#xff1a; 知识点专区&#xff1a; 1基本数据类型 基本数据类型有四类&#xff1a;整型、浮点型、字符型、布尔型&#xff08;Boolean&#xff09;&#xff0c; 分为八种&#xff…

JS判断元素是否在数组中

在JavaScript中&#xff0c;有多种方法可以用来判断一个元素是否存在于数组中。以下是其中的一些方法&#xff1a; 1. 使用 Array.prototype.includes() 方法 includes() 方法用于判断一个数组是否包含一个指定的值&#xff0c;根据情况&#xff0c;如果需要区分大小写&#…

AI图书推荐:《企业AI转型:如何在企业中部署ChatGPT?》

Jay R. Enterprise AI in the Cloud. A Practical Guide...ChatGPT Solutions &#xff08;《企业AI转型&#xff1a;如何在企业中部署ChatGPT&#xff1f;》&#xff09;是一本由Rabi Jay撰写、于2024年由John Wiley & Sons出版的书籍&#xff0c;主要为企业提供实施AI转型…

半导体厂FDC系统 的trace data知识

01、什么是FDC系统 在半导体行业中,FDC系统通常指的是"Failure Data Collection"(故障数据收集)系统。FDC系统的作用是收集、存储和分析在半导体制造过程中检测到的故障或不良品数据。以下是FDC系统的一些关键作用: 1. **故障检测**:FDC系统可以实时监测生产线…

python facebook business SDK campaign 广告复制方法

facebook广告复制调试了一天&#xff0c;特此记录&#xff0c;广告复制分为两个步骤&#xff1a; 第一步&#xff1a;使用campaign.create_copy()复制广告系列。 第二步&#xff1a;复制源广告广告集&#xff08;ad_set&#xff09;如果广告集需要修改&#xff0c;使用api_upd…

(六)Servlet教程——JSP与Servlet的关系

JSP与Servlet的关系 JSP&#xff08;Java Server Pages&#xff09;是继Servlet后Sun公司推出的新技术。JSP技术在传统的HTML文件中插入Java程序段和JSP标记&#xff0c;从而形成JSP文件&#xff08;*.jsp&#xff09;。用JSP开发的Web应用是跨平台的&#xff0c;既能在Window…

数据结构与算法目录

1、基本认识 算法的复杂度和稳定性 链接&#xff1a;算法的复杂度和稳定性_o(1) < o(logn) < o(n) < o(nlogn) < o(n^2) < o(n^3)-CSDN博客Java的链表的创建、插入、修改、删除、查询等 链接&#xff1a;Java的链表的创建、插入、修改、删除、查询等_java链表查…

some术语

1.PS_HOLD: DI. Power supply hold control input (电源保持控制输入) (VRM) 电压调节器模块 icache用来缓存指令&#xff0c; dcache用来缓存数据 双85&#xff1a;85度的温度,85%的湿度老化测试 SMPL&#xff1a;Sudden momentary power loss。大概就是“突然掉电的意思…

Python实现视频转音频

说明&#xff1a;仅供学习使用&#xff0c;请勿用于非法用途&#xff0c;若有侵权&#xff0c;请联系博主删除 作者&#xff1a;zhu6201976 一、moviepy实现视频转音频 github地址&#xff1a;GitHub - Zulko/moviepy: Video editing with Python 二、示例代码 ""&…

2024.4.28

有以下类&#xff0c;完成特殊成员函数 #include <iostream>using namespace std; class Person{string name;int* age; public:Person():name("zhangsan"),age(new int(18)){}Person(string name,int* age):name(name),age(new int(*age)){}~Person(){delete…

接口测试-笔记

Date 2024年4月23日21:19:51 Author KarrySmile 1. 前言 因为想更加规范地开发接口&#xff0c;同时让自己测试接口的时候更加高效&#xff0c;更好地写好接口文档。所以学习黑马的《接口自动化测试》课程。链接&#xff1a;黑马程序员软件测试接口自动化测试全套视频教程&a…

Redis运维篇-快速面试笔记(速成版)

文章目录 1. Redis的持久化1.1 RDB&#xff08;快照模式&#xff09;1.2 AOF 模式 2. Redis主从模型&#xff08;高可用&#xff09;2.1 Redis的主从复制2.2 Redis拓扑结构 3. Redis集群模式&#xff08;高并发&#xff09;3.1 Redis的Slots3.2 集群模式的常用命令3.3 多主多从…

STL_List与萃取

List 参考文章: https://blog.csdn.net/weixin_45389639/article/details/121618243 List源码 List中节点的定义&#xff1a; list是双向列表&#xff0c;所以其中节点需要包含指向前一节点和后一节点的指针&#xff0c; data是节点中存储的数据类型 template <class _Tp&g…

北京车展“第一枪”:长安汽车发布全球首款量产可变新汽车

4月25日&#xff0c;万众瞩目的2024北京国际汽车展览会在中国国际展览中心如期而至。作为中国乃至全球汽车行业的盛宴&#xff0c;本次车展也吸引了无数业内人士的高度关注。 此次北京车展以“新时代 新汽车”为主题&#xff0c;汇聚了1500余家主流车企及零部件制造商&#xff…

【R语言】对EXCEL多行或多列数据合并成一行或一列

对于很多行或很多列数据合并成一行或一列数据&#xff0c;手动是非常麻烦的&#xff0c;尤其当行列数无穷大&#xff0c;根本无法手动处理&#xff0c;在这里价绍一种解决办法&#xff1a;运行R语言&#xff0c;对数据的快速合并。 这里一多列合并成一列为例&#xff08;如果是…