当前位置: 首页 > news >正文

day 53|● 1143.最长公共子序列 ● 1035.不相交的线 ● 53. 最大子序和 动态规划

1143. 最长公共子序列

给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。

一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。

例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。
两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。

示例 1:
输入:text1 = "abcde", text2 = "ace" 
输出:3  
解释:最长公共子序列是 "ace" ,它的长度为 3 。示例 2:
输入:text1 = "abc", text2 = "abc"
输出:3
解释:最长公共子序列是 "abc" ,它的长度为 3 。示例 3:
输入:text1 = "abc", text2 = "def"
输出:0
解释:两个字符串没有公共子序列,返回 0

解:

//递推公式:
/*
if text1[i]==text2[j]dp[i][j]=dp[i-1][j-1]+1;
elsedp[i][j]=max(dp[i-1][j],dp[i][j-1]);
*/
class Solution {
public:int longestCommonSubsequence(string text1, string text2) {vector<vector<int>> dp(text1.size()+1,vector<int>(text2.size()+1,0));for(int i=1;i<=text1.size();i++){for(int j=1;j<=text2.size();j++){if(text1[i-1]==text2[j-1])dp[i][j]=dp[i-1][j-1]+1;else   dp[i][j]=max(dp[i-1][j],dp[i][j-1]);}}return dp[text1.size()][text2.size()];}
};
  1. 不相交的线
    在两条独立的水平线上按给定的顺序写下 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

解:

//我觉得问题还是找最长公共子序列--1143. 最长公共子序列
class Solution {
public:int maxUncrossedLines(vector<int>& nums1, vector<int>& nums2) {vector<vector<int>>dp(nums1.size()+1,vector<int>(nums2.size()+1,0));for(int i=1;i<=nums1.size();i++){for(int j=1;j<=nums2.size();j++){if(nums1[i-1]==nums2[j-1])dp[i][j]=dp[i-1][j-1]+1;elsedp[i][j]=max(dp[i-1][j],dp[i][j-1]);}}return dp[nums1.size()][nums2.size()];}
};

53. 最大子数组和

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

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

示例 1:
输入:nums = [-2,1,-3,4,-1,2,1,-5,4]
输出:6
解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:
输入:nums = [1]
输出:1示例 3:
输入:nums = [5,4,-1,7,8]
输出:23

解:

/*
设dp[i]为以nums[i]为结尾的最大连续数组和
递归公式:
if(dp[i-1]+nums[i]<nums[i])dp[i]=nums[i];
elsedp[i]=dp[i-1]+nums[i];
遍历dp[i],找出最大值。
同理也是贪心的思想。
*/
class Solution {
public:int maxSubArray(vector<int>& nums) {if(nums.size()==1) return nums[0];vector<int>dp(nums.size(),0);dp[0]=nums[0];int result=nums[0];for(int i=1;i<nums.size();i++){if(dp[i-1]+nums[i]<nums[i])dp[i]=nums[i];else dp[i]=dp[i-1]+nums[i];result=max(dp[i],result);}return result;}
};

相关文章:

day 53|● 1143.最长公共子序列 ● 1035.不相交的线 ● 53. 最大子序和 动态规划

1143. 最长公共子序列 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样一个新的字符串&#xff1a;它是由原字符串在不改变字符的相对顺序的情况下删除某些…...

运维工程师必知的十项Linux常识

1、GNU和GPL GNU计划&#xff08;又称革奴计划&#xff09;&#xff0c;是由Richard Stallman&#xff08;理查德斯托曼&#xff09;在1983年9月27日公开发起的软件集体协作计划。它的目标是创建一套完全的操作系统。GNU也称为软件工程项目。GPL是GNU的通用公共许可证&#xf…...

C++ 11 之右值引用和移动语义

文章目录左值引用与右值引用1、左值与右值2、纯右值、将亡值3、左值引用与右值引用4、右值引用和 std::move 使用场景引用限定符移动语义—std::move()完美转发emplace_back 减少内存拷贝和移动总结c11中引用了右值引用和移动语义&#xff0c;可以避免无谓的复制&#xff0c;提…...

【第一章:Spring概述、特点、IOC容器、IOC操作bean管理(基于xml方式)】

第一章&#xff1a;Spring概述、特点、IOC容器、IOC操作bean管理&#xff08;基于xml方式&#xff09; 1.Spring是什么&#xff1f; ①Spring是一款主流的java EE 轻量级开源框架。 ②广义的Spring&#xff1a;Spring技术栈&#xff0c;Spring不再是一个单纯的应用框架&#x…...

CSS变量

前端的开发工作中&#xff0c;CSS 是不可或缺的部分&#xff1b;实际工作中&#xff0c;我们通过JavaScript 来进行数据和交互工作&#xff0c;CSS 为用户呈现可视化的界面。有时&#xff0c;CSS 来进行部分交互效果是不是会比 JavaScript 更高效、更省事呢&#xff1f; 一、变…...

.net7窗口编程c#2022实战(1)-zip压缩精灵(1)

目录 创建ZIP精灵项目拖控件OpenFileDialog 类压缩与解压缩编写我们自己的代码其它参考内容创建ZIP精灵项目 VS2022中新建项目。 为窗体取一个标题名称 拖控件 左边工具栏里选择控件 拖三个按钮控件和一个listbox控件...

云计算|OpenStack|使用VMware安装华为云的R006版CNA和VRM

前言&#xff1a; FusionCompute架构 (CNA、VRM) CNA(ComputingNode Agent):计算节点代理VNA虚拟节点代理&#xff0c;部署在CNA上&#xff0c;实施计算、存储、网络的虚拟化的配置管理。VRM(Virtual Resource Manager):虚拟资源管理器 VNA可以省略不安装 本次实验使用的是V…...

中央一号文件首提“即时零售”,县域掀起消费业态新风潮

经过几年的探索&#xff0c;即时零售已经逐步走向成熟&#xff0c;并开始向三四线城市以及乡镇城市渗透。 过去一年&#xff0c;京东、美团、阿里争先布局即时零售市场&#xff0c;完善即时配送网络、培养用户消费习惯&#xff0c;即时零售订单迎来了骤增。2022年下半年&#…...

python多线程编程

Python多线程编程中常用方法&#xff1a; 1、join()方法&#xff1a;如果一个线程或者在函数执行的过程中调用另一个线程&#xff0c;并且希望待其完成操作后才能执行&#xff0c;那么在调用线程的时就可以使用被调线程的join方法join([timeout]) timeout&#xff1a;可选参数…...

小熊电器:精品与创意,走上“顶流之路”的两把“宝剑”

回顾2022年&#xff0c;小家电市场降温趋势明显&#xff0c;业绩表现整体低迷&#xff0c;如主打高端路线的北鼎&#xff0c;去年8亿元的营收出现个位数下滑&#xff0c;归母净利润同比下降超56%&#xff1b;苏泊尔营收也出现微降&#xff0c;归母净利润预计同比增长不到10%。而…...

如何描述元素与元素间的逻辑关系?

逻辑结构反映的是数据元素之间的关系&#xff0c;它们与数据元素在计算机中的存储位置无关&#xff0c;是数据结构在用户面前所呈现的形式。根据不同的逻辑结构来分&#xff0c;数据结构可分为集合、线性结构、树形结构和图形结构4种形式&#xff0c;接下来分别进行简要介绍。 …...

【3】linux命令每日分享——mv改名或移动

大家好&#xff0c;这里是sdust-vrlab&#xff0c;Linux是一种免费使用和自由传播的类UNIX操作系统&#xff0c;Linux的基本思想有两点&#xff1a;一切都是文件&#xff1b;每个文件都有确定的用途&#xff1b;linux涉及到IT行业的方方面面&#xff0c;在我们日常的学习中&…...

【2023最火教程】Python性能测试框架Locust实战教程(建议收藏)

01、认识Locust Locust是一个比较容易上手的分布式用户负载测试工具。它旨在对网站&#xff08;或其他系统&#xff09;进行负载测试&#xff0c;并确定系统可以处理多少个并发用户&#xff0c;Locust 在英文中是 蝗虫 的意思&#xff1a;作者的想法是在测试期间&#xff0c;放…...

深入浅出C++ ——手撕AVL树

文章目录前言一、AVL 树介绍二、AVL树节点的定义三、AVL树的插入四、AVL树的旋转五、AVL树的验证六、AVL树的删除七、AVL树的性能八、AVL树的实现前言 在前面的文章中介绍了map / multimap / set / multiset 容器&#xff0c;这几个容器的底层都是按照二叉搜索树来实现的。但是…...

将多个springboot项目的pom.xml文件整合

将多个springboot项目的pom.xml文件整合 0.0、前因 ​ 刚入公司敲代码时、发现一个项目中会包含多个子项目、每个子项目会代表一个功能模块、这属实是把我这个菜鸟惊叹到了。而这种分而治之的方式也引申出一个问题&#xff1a;各子项目的依赖如何统一管理&#xff1f; ​ 我…...

【Unity实战100例】Unity串口通讯的消息接收解析和发送指令

目录 一.串口通信介绍 1.串口通信 2.名词介绍 1.上位机: 2.下位机: 3.串行端口...

资源消耗降低 90%,速度提升 50%,解读 Apache Doris Compaction 最新优化与实现

背景LSM-Tree&#xff08; Log Structured-Merge Tree&#xff09;是数据库中最为常见的存储结构之一&#xff0c;其核心思想在于充分发挥磁盘连续读写的性能优势、以短时间的内存与 IO 的开销换取最大的写入性能&#xff0c;数据以 Append-only 的方式写入 Memtable、达到阈值…...

【Mysql】 锁

【Mysql】 锁 文章目录【Mysql】 锁1. 锁1.1 概述1.2 全局锁1.2.1 介绍1.2.2 语法1.2.2.1 加全局锁1.2.2.2 数据备份1.2.2.3 释放锁1.2.3 特点1.3 表级锁1.3.1 介绍1.3.2 表锁1.3.3 元数据锁1.3.4 意向锁1.4 行级锁1.4.1 介绍1.4.2 行锁1.4.3 间隙锁&临键锁1. 锁 1.1 概述…...

Android 流量统计

Android 流量统计最近项目上有一个应用流量统计的功能需要实现&#xff0c;在此总结一下 流量统计架构 在Android9.0之前&#xff0c;流量监控是基于xt_qtaguid模块的&#xff0c;通过读取/proc/net/xt_qtaguid/stats文件内容进行解析获取对应流量数据。 Android9.0之后&…...

如何保证数据的安全?对称和非对称加密,身份认证,摘要算法,数字证书等傻傻分不清?波哥图解带你彻底掌握

支付安全 1.基础概念 明文&#xff1a;加密前的消息叫“明文”&#xff08;plain text&#xff09; 密文&#xff1a;加密后的文本叫“密文”&#xff08;cipher text&#xff09; 密钥&#xff1a;只有掌握特殊“钥匙”的人&#xff0c;才能对加密的文本进行解密&#xff0c;…...

统信系统下如何管理Mysql?

背景 看到标题很多朋友会打趣的问我&#xff1a;“你不是一直用麒麟操作系统做讲解吗&#xff1f;”&#xff0c;其实DBCS和DESK的兼容性太强了&#xff0c;什么操作系统都行&#xff0c;Windows上最容易了&#xff0c;所以我一般不用Windows&#xff0c;下次我用Ubuntu给大家…...

Webots R2021a搭配Anaconda环境:从SSL报错到Python API调通的完整避坑指南

Webots R2021a与Anaconda环境深度整合&#xff1a;Python控制器开发全流程解析 当机器人仿真与Python开发环境相遇时&#xff0c;Webots和Anaconda的组合为研究者提供了强大工具链。然而&#xff0c;从环境配置到API调用的完整流程中&#xff0c;开发者常会遇到各种"坑点&…...

从反射率到耐候性:5个关键参数教你像专业人士一样测试LED封装胶水

从反射率到耐候性&#xff1a;5个关键参数教你像专业人士一样测试LED封装胶水 在LED制造领域&#xff0c;封装胶水就像光学系统的"隐形工程师"&#xff0c;它不仅要牢固固定芯片和荧光粉&#xff0c;更承担着光线管理的关键任务。一款优质的高反射率封装胶水&#xf…...

SAP资产会计数据迁移:除了AS91,你还需要检查这些关键配置(传输日期、抵销科目详解)

SAP资产会计数据迁移&#xff1a;AS91之外的7个关键配置陷阱与解决方案 当你在凌晨三点盯着屏幕上不平的资产折旧凭证时&#xff0c;AS91的简单操作指南显然已经不够用了。作为经历过数十个SAP上线项目的顾问&#xff0c;我发现90%的资产数据迁移问题都源于那些容易被忽略的后台…...

“title“: “Java全栈开发面试实录:从基础到实战的深度对话“,

{ "title": "Java全栈开发面试实录&#xff1a;从基础到实战的深度对话", "content": "# Java全栈开发面试实录&#xff1a;从基础到实战的深度对话\n\n## 一、开场白\n\n面试官&#xff1a;你好&#xff0c;欢迎来参加我们公司的Java全栈开…...

从理论到实践:在快马平台构建基于openclaw的物流分拣仿真系统

最近在研究物流自动化分拣系统时&#xff0c;发现openclaw机械爪控制在实际应用中存在不少痛点。传统开发流程需要从零搭建仿真环境、编写控制逻辑、调试物理交互&#xff0c;整个过程耗时耗力。于是尝试用InsCode(快马)平台快速构建了一个物流分拣仿真系统&#xff0c;效果出乎…...

从 0 开始讲透 C++ Lambda(对标 Java)

在写 C 多线程或 STL 时&#xff0c;经常会看到这样的代码&#xff1a;std::thread t([]{ std::cout << "Hello C Thread\n"; });很多人第一反应&#xff1a;这 [] 是什么&#xff1f;为什么和 Java 不一样&#xff1f;一、先给结论&#xff08;先建立整体认知…...

Python多线程性能翻倍实录(GIL禁用+细粒度原子操作配置全指南)

第一章&#xff1a;Python无锁GIL环境下的并发模型概览Python 的全局解释器锁&#xff08;GIL&#xff09;长期被视为多线程 CPU 密集型任务的瓶颈。然而&#xff0c;随着 CPython 3.13 的正式引入“实验性无锁 GIL”&#xff08;--without-pymalloc 配合 --with-gildisabled 构…...

深入解析影像显示驱动:MIPI与I2C的协同设计与应用

1. MIPI与I2C&#xff1a;影像显示驱动的黄金搭档 第一次拆开手机屏幕排线时&#xff0c;我看到两条截然不同的线路——细如发丝的MIPI差分对和普通的I2C双绞线。这就像发现城市地下的两套管网系统&#xff1a;MIPI是高压供水主管道&#xff0c;每秒输送数GB的图像数据&#xf…...

硬件加速对比:Qwen3-32B镜像在RTX4090D与A100上的OpenClaw表现

硬件加速对比&#xff1a;Qwen3-32B镜像在RTX4090D与A100上的OpenClaw表现 1. 测试背景与实验设计 最近在部署OpenClaw自动化工作流时&#xff0c;遇到了一个实际需求&#xff1a;如何为本地AI智能体选择最具性价比的GPU硬件&#xff1f;我的工作流主要依赖Qwen3-32B模型进行…...