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

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

LeetCode 1143.最长公共子序列

题目链接:https://leetcode.cn/problems/longest-common-subsequence/description/
文章链接:https://programmercarl.com/1143.%E6%9C%80%E9%95%BF%E5%85%AC%E5%85%B1%E5%AD%90%E5%BA%8F%E5%88%97.html

思路

 * dp[i][j]:长度为[0, i - 1]的字符串text1与长度为[0, j - 1]的字符串text2的最长公共子序列为dp[i][j]* 主要就是两大情况: text1[i - 1] 与 text2[j - 1]相同,text1[i - 1] 与 text2[j - 1]不相同* 如果text1[i - 1] 与 text2[j - 1]相同,那么找到了一个公共元素,所以dp[i][j] = dp[i - 1][j - 1] + 1;* 如果text1[i - 1] 与 text2[j - 1]不相同,那就看看text1[0, i - 2]与text2[0, j - 1]的最长公共子序列 和 text1[0, i - 1]与text2[0, j - 2]的最长公共子序列,取最大的。* 即:dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]);
public int longestCommonSubsequence(String text1, String text2) {int len1 = text1.length();int len2 = text2.length();int[][] dp = new int[len1 + 1][len2 + 1];for (int i = 1; i <= len1; i++) {char t1 = text1.charAt(i);for (int j = 1; j <= len2; j++) {char t2 = text2.charAt(j);if (t1 == t2)dp[i][j] = dp[i-1][j-1] + 1;elsedp[i][j] = Math.max(dp[i-1][j],dp[i][j-1]);}}return dp[len1][len2];}

LeetCode 1035.不相交的线

题目链接:https://leetcode.cn/problems/uncrossed-lines/description/
文章链接:https://programmercarl.com/1035.%E4%B8%8D%E7%9B%B8%E4%BA%A4%E7%9A%84%E7%BA%BF.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE

思路

本题其实就是求最长公共子序列

 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];}

LeetCode 53. 最大子序和

题目链接:https://leetcode.cn/problems/maximum-subarray/description/
文章链接:https://programmercarl.com/0053.%E6%9C%80%E5%A4%A7%E5%AD%90%E5%BA%8F%E5%92%8C%EF%BC%88%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%EF%BC%89.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE

思路

 * dp[i]表示以nums[i]为结尾的最大子数组的和* 那么对于第i个元素,如果选择加入前面最大子数组的和,那么dp[i] = dp[i-1] + nums[i]* 也可以第i个元素不加入前面子序列,那么就从nums[i]开始重新加,则dp[i] = nums[i]
public int maxSubArray(int[] nums) {int[] dp = new int[nums.length];dp[0] = nums[0];int res = dp[0];for (int i = 1; i < nums.length; i++) {dp[i] = Math.max(dp[i-1] + nums[i], nums[i]);res = Math.max(res,dp[i]);}return res;}

LeetCode 392.判断子序列

题目链接:https://leetcode.cn/problems/maximum-subarray/description/
文章链接:https://programmercarl.com/0053.%E6%9C%80%E5%A4%A7%E5%AD%90%E5%BA%8F%E5%92%8C%EF%BC%88%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%EF%BC%89.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE

思路

本题思路和1143.最长公共子序列类似,其实就是求两个字符串的最长公共子序列是否等于其中比较短的字符串

public boolean isSubsequence(String s, String t) {int len1 = s.length();int len2 = t.length();// dp[i][j]表示s串中以第i-1个元素为结尾的子串和t串中以第j-1个元素为结尾的子串的最大公共子序列长度int[][] dp = new int[len1 + 1][len2 + 1];for (int i = 1; i <= len1 ; i++) {char si = s.charAt(i - 1);for (int j = 1; j <= len2 ; j++) {char tj = t.charAt(j - 1);if (si == tj) {dp[i][j] = dp[i-1][j-1] + 1;}elsedp[i][j] = dp[i][j-1];}}if (dp[len1][len2] == len1) {return true;}elsereturn false;}

相关文章:

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

LeetCode 1143.最长公共子序列 题目链接&#xff1a;https://leetcode.cn/problems/longest-common-subsequence/description/ 文章链接&#xff1a;https://programmercarl.com/1143.%E6%9C%80%E9%95%BF%E5%85%AC%E5%85%B1%E5%AD%90%E5%BA%8F%E5%88%97.html 思路 * dp[i][j]…...

【Redis】数据持久化

https://www.bilibili.com/video/BV1cr4y1671t?p96 https://blog.csdn.net/weixin_54232666/article/details/128821360 单点redis问题&#xff1a; 数据丢失问题&#xff1a;实现Redis数据持久化并发能力问题&#xff1a;搭建主从集群&#xff0c;实现读写分离故障恢复问题&…...

基于Python+Flask+MySQL+HTML的B站数据可视化分析系统

FlaskMySQLVue 基于PythonFlaskMySQLHTML的B站数据可视化分析系统 项目采用前后端分离技术&#xff0c;项目包含完整的前端HTML&#xff0c;以及Flask构成完整的前后端分离系统 爬虫文件基于selenium&#xff0c;需要配合登录账号 简介 主页 登录页面&#xff0c;用户打开浏…...

桥接模式

对象的继承关系是在编译时就定义好了&#xff0c;所以无法在运行时改变从父类继承的实现。子类的实现与它的父类有非常紧密的依赖关系&#xff0c;以至于父类实现中的任何变化必然会导致子类发生变化。当你需要复用子类时&#xff0c;如果继承下来的实现不适合解决新的问题&…...

docker中mysql突然无法远程连接设置

docker登陆到docker.hub docker login -u 用户名 回车密码 将容器打包成自己的镜像 docker commit -a "用户名" -m "redis" 533d6f1402ca 用户名/myredis:v1.2 将镜像发布到平台上 docker push用户名/myredis:v1.2 删除本地镜像 docker rm image …...

Nuxt3 的生命周期和钩子函数(二)

title: Nuxt3 的生命周期和钩子函数&#xff08;二&#xff09; date: 2024/6/26 updated: 2024/6/26 author: cmdragon excerpt: 摘要&#xff1a;本文深入介绍了Nuxt.js框架中几个关键的生命周期钩子函数&#xff0c;包括app:redirected&#xff08;SSR环境下重定向前触发…...

用英文介绍孟买:Mumbai India‘s Transforming MEGACITY

Mumbai: India’s Transforming MEGACITY Link: https://www.youtube.com/watch?vtWD_-Rzrn8o Summary First Paragraph: Mumbai, India’s financial and entertainment capital, is undergoing a major transformation. With its contiguous urban population nearing 25…...

镜像发布至dockerHub

1、login 没有账号的话去注册一个 https://hub.docker.com docker login 输入账号密码和账号2、修改镜像名格式 可以直接招我的修改 格式为你的 hub名/镜像名 3、推送...

vscode + CMake编译(opencv显示图片工程)

1.opencv 1.1Mat容器&#xff1a; 在OpenCV中&#xff0c;cv::Mat是一个重要的类&#xff0c;用于表示和操作矩阵或多维数组&#xff0c;通常用于图像处理和计算机视觉任务。 cv::Mat类具有以下特点和功能&#xff1a; 多维数据存储&#xff1a;cv::Mat可以存储多维数据&…...

JavaScript的学习之强制类型转换

目录 一、什么是强制类型转换 二、其他类型转化为String类型 方式一&#xff1a;调用被转化数据类型的toString()方法 方式二&#xff1a;调用String函数&#xff0c;并将我们要转换的数据添加进去为参数 三、其他类型转化为Number类型 方式一&#xff1a;使用Number()函数…...

天润融通:AI赋能客户体验,推动企业收入和业绩增长

“客户体验已经成为全球企业差异化的关键。人工智能与数据分析等创新技术正在加速推动企业在客户体验计划中取得成功&#xff0c;以保持领先地位”。Customer Insights & Analysis 研究经理Craig Simpson说道。 客户体验 (CX&#xff0c;Customer Experience) 是客户在与企…...

Android与服务器交互的方式中的对称加密和非对称加密(kotlin)

Android与服务器交互中的对称加密和非对称加密&#xff08;kotlin&#xff09; 引言 在 Android 与服务器交互时&#xff0c;我们常常需要进行数据传输&#xff0c;为了保证数据的安全性&#xff0c;我们可以使用加密算法来保护数据。在本文中&#xff0c;我们将介绍如何在 K…...

epoch和batch的区别

在机器学习和深度学习中&#xff0c;“epoch”&#xff08;批次&#xff09;和"batch"&#xff08;批量&#xff09;是两个重要的概念&#xff0c;它们分别表示训练过程中的不同阶段和数据处理方式。 Epoch&#xff08;批次&#xff09; 定义&#xff1a;Epoch&…...

非递归创建二叉查找树

非递归创建二叉查找树代码。 #include <stdio.h> #include <stdlib.h>typedef int KeyType; typedef struct BSTNode{KeyType key;struct BSTNode *lchild,*rchild; }BSTNode,*BiTree;//王道书上的递归写法&#xff0c;代码简单&#xff0c;但是理解有难度 //int …...

摄影师危!AI绘画即将降维打击摄影行业

你还以为AI绘画影响的只是插画师行业吗&#xff1f;错了&#xff0c;摄影行业也即将面临技术洗牌 话不多说&#xff0c;先看一下这几张图 你能一眼看出这是AI画的迪丽热巴吗&#xff1f; 你是不是还以为AI绘画只能画点动漫艺术风格&#xff1f;那你就低估了AI的发展速度&…...

ts 中class

class obj{name:stringage:numberconstructor(name:string,age:number){this.name namethis.age age}setname(){this.name 111 } } //新建实例 //构造方法中的this指向调用者&#xff0c;谁new就指向谁 //这个this 指向 o&#xff0c;打印this&#xff0c;可以获取到o身上的…...

深度解析RocketMq源码-高可用存储组件(四)Dledger框架日志同步流程

1.绪论 在深度解析RocketMq源码-高可用存储组件&#xff08;一&#xff09; raft协议详解-CSDN博客 中讲过&#xff0c;raft协议中&#xff0c;日志同步主要有两个地方&#xff0c;一个是leader会跟follower同步数据&#xff0c;另一个是在新leader诞生的时候&#xff0c;会与…...

ONLYOFFICE 文档开发者版 8.1:API 更新

随着版本 8.1 新功能的发布&#xff0c;我们更新了编辑器、文档生成器和插件的 API&#xff0c;并添加了 Office API 板块。阅读下文了解详情。 ​ ONLYOFFICE 文档是什么 ONLYOFFICE 文档是一个功能强大的文档编辑器&#xff0c;支持处理文本文档、电子表格、演示文稿、可填写…...

Activemq单节点在Windows下的配置部署

1.环境信息 服务器信息jdk版本activemq版本备注Windows Server 2008R2 Enterprisejdk-17_windows-x64_bin.exeapache-activemq-5.18.42.jdk配置 1.下载jdk 地址: Java Downloads | Oracle 中国 2.上传至Windows服务器,点击安装,在选择安装目录页面,选择合适的安装目录即…...

SpringBoot-注解@ImportResource引入自定义spring的配置xml文件和配置类

1、注解ImportResource 我们知道Spring的配置文件是可以有很多个的&#xff0c;我们在web.xml中如下配置就可以引入它们&#xff1a; SprongBoot默认已经给我们配置好了Spring&#xff0c;它的内部相当于已经有一个配置文件&#xff0c;那么我们想要添加新的配置文件怎么办&am…...

ENVI 5.3 vs 5.6 处理GF-6/GF-7数据实测:版本差异、流程对比与效率优化心得

ENVI 5.3与5.6处理GF-6/GF-7数据深度评测&#xff1a;从版本差异到实战优化 当高分卫星数据成为遥感分析的主流选择&#xff0c;ENVI作为行业标杆软件&#xff0c;其版本迭代对数据处理效率的影响往往被低估。本文将基于真实项目经验&#xff0c;拆解ENVI 5.3与5.6在处理GF-6/G…...

高效统计分析实战指南:JASP全面解析与应用秘籍

高效统计分析实战指南&#xff1a;JASP全面解析与应用秘籍 【免费下载链接】jasp-desktop JASP aims to be a complete statistical package for both Bayesian and Frequentist statistical methods, that is easy to use and familiar to users of SPSS 项目地址: https://…...

重新定义开源RTS体验:Beyond All Reason深度技术解析

重新定义开源RTS体验&#xff1a;Beyond All Reason深度技术解析 【免费下载链接】Beyond-All-Reason www.beyondallreason.info 项目地址: https://gitcode.com/gh_mirrors/be/Beyond-All-Reason Beyond All Reason是一款基于Spring引擎开发的开源实时战略游戏&#xf…...

Pixel Mind Decoder 跨平台调用演示:从微信小程序发送分析请求

Pixel Mind Decoder 跨平台调用演示&#xff1a;从微信小程序发送分析请求 1. 场景引入&#xff1a;为什么需要情绪分析功能 最近在开发一个社交类微信小程序时&#xff0c;遇到了一个有趣的需求&#xff1a;用户希望能在聊天过程中实时了解对方的情绪状态。想象一下&#xf…...

Llama-3.2V-11B-cot惊艳效果展示:CoT逻辑推演+流式输出真实推理作品集

Llama-3.2V-11B-cot惊艳效果展示&#xff1a;CoT逻辑推演流式输出真实推理作品集 1. 专业级视觉推理工具震撼登场 Llama-3.2V-11B-cot是基于Meta最新多模态大模型开发的高性能视觉推理工具&#xff0c;专为双卡4090环境深度优化。这个工具最令人惊叹的地方在于它完美融合了Ch…...

Shopee风控算法逆向 - Unidbg补环境实战解析

1. Shopee风控算法逆向分析入门 最近在研究Shopee的风控机制时&#xff0c;我发现他们的Native层加密算法特别有意思。作为一个常年和移动安全打交道的开发者&#xff0c;今天想和大家分享下使用Unidbg模拟执行Shopee风控算法的完整过程。 Shopee作为东南亚头部电商平台&…...

从零到一:OpCore-Simplify如何让黑苹果配置变得如此简单?

从零到一&#xff1a;OpCore-Simplify如何让黑苹果配置变得如此简单&#xff1f; 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的OpenCor…...

Win10系统代理服务器拒绝连接?3步搞定网络恢复(附图文详解)

Win10代理服务器连接故障排查指南&#xff1a;从原理到实战解决方案 当Windows 10突然弹出"代理服务器拒绝连接"的错误提示时&#xff0c;很多用户会感到手足无措。这种情况通常发生在系统更新后、网络环境变更时&#xff0c;或是某些应用程序擅自修改了系统设置。本…...

Spring Boot 与 GraphQL 2.0 集成:构建现代化 API

Spring Boot 与 GraphQL 2.0 集成&#xff1a;构建现代化 API 引言 在现代 Web 开发中&#xff0c;API 设计变得越来越重要。传统的 RESTful API 在面对复杂的数据查询需求时&#xff0c;往往会面临过度获取或获取不足的问题。GraphQL 作为一种新型的 API 查询语言&#xff0c;…...

用51单片机+普中开发板DIY一个抢答器,从Proteus仿真到实物烧录全流程记录

从零打造51单片机抢答器&#xff1a;普中开发板实战全记录 第一次接触单片机项目时&#xff0c;我盯着闪烁的LED灯兴奋了整整半小时——那种"让机器听我指挥"的成就感&#xff0c;至今记忆犹新。这次要挑战的是更实用的抢答器制作&#xff0c;不仅涉及编程逻辑&#…...