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

Day 49 卡玛笔记

这是基于代码随想录的每日打卡

1143. 最长公共子序列

给定两个字符串 text1text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 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 。

动态规划

class Solution:def longestCommonSubsequence(self, text1: str, text2: str) -> int:dp=[[0 for j in range(len(text2)+1)] for i in range(len(text1)+1)]# i和j表示的都是第几个字符  for i in range(1,len(text1)+1):for j in range(1,len(text2)+1):if text1[i-1]==text2[j-1]:dp[i][j]=dp[i-1][j-1]+1else:# 当前字符不匹配,表示跳过text1的当前字符,寻找text1前一个字符和text2的最长公共子序列;跳过text2的当前字符,寻找text2前一个字符和text1的最长公共子序列dp[i][j]=max(dp[i-1][j],dp[i][j-1])return dp[-1][-1]

运行结果

在这里插入图片描述



1035. 不相交的线

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

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

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

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

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

示例 1:

img

输入: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

动态规划

class Solution:def maxUncrossedLines(self, nums1: List[int], nums2: List[int]) -> int:# 本质是上一题的求最长公共子序列问题dp=[[0 for j in range(len(nums2)+1)] for i in range(len(nums1)+1)]# i和j表示的都是第几个字符  for i in range(1,len(nums1)+1):for j in range(1,len(nums2)+1):if nums1[i-1]==nums2[j-1]:dp[i][j]=dp[i-1][j-1]+1else:dp[i][j]=max(dp[i-1][j],dp[i][j-1])return dp[-1][-1]

运行结果

在这里插入图片描述



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

动态规划

class Solution:def maxSubArray(self, nums: List[int]) -> int:# dp[i]表示以下标i为结尾的最大连续子数组和dp=[0 for i in range(len(nums))]dp[0]=nums[0]for i in range(1,len(nums)):dp[i]=max(dp[i-1]+nums[i],nums[i])return max(dp)

运行结果

在这里插入图片描述



392. 判断子序列

给定字符串 st ,判断 s 是否为 t 的子序列。

字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace""abcde"的一个子序列,而"aec"不是)。

示例 1:

输入:s = "abc", t = "ahbgdc"
输出:true

示例 2:

输入:s = "axc", t = "ahbgdc"
输出:false

动态规划

class Solution:def isSubsequence(self, s: str, t: str) -> bool:dp=[[0 for j in range(len(t)+1)] for i in range(len(s)+1)]# i和j表示的都是第几个字符  for i in range(1,len(s)+1):for j in range(1,len(t)+1):if s[i-1]==t[j-1]:dp[i][j]=dp[i-1][j-1]+1else:# 当字符不匹配时,我们只需要继承 t 的前 j-1 个字符的状态,# 因为 s 的前 i 个字符是否是 t 的子序列,不依赖于 t 的当前字符。dp[i][j]=dp[i][j-1]if dp[-1][-1]==len(s):return Truereturn False

运行结果

相关文章:

Day 49 卡玛笔记

这是基于代码随想录的每日打卡 1143. 最长公共子序列 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变…...

WebXR教学 01 基础介绍

什么是WebXR? 定义 XR VR AR Web上使用XR技术的API WebXR 是一组用于在 Web 浏览器中实现虚拟现实(VR)和增强现实(AR)应用的技术标准。它由 W3C 的 Immersive Web 工作组开发,旨在提供跨设备的沉浸式体验…...

DeepSeek+Kimi生成高质量PPT

DeepSeek与Kimi生成PPT全流程解析 一、工具分工原理 DeepSeek核心作用:生成结构化PPT大纲(擅长逻辑构建与内容优化)Kimi核心作用:将文本转换为视觉化PPT(提供模板库与排版引擎) 二、操作步骤详解 1. 通…...

hot100---day3

二叉树复习hot100专题 144. 二叉树的前序遍历 - 力扣&#xff08;LeetCode&#xff09; 递归法的前中后序遍历&#xff0c;格式比较一致&#xff1b; class Solution { public:vector<int>& traversal(TreeNode* root, vector<int>& ans){if(rootnullpt…...

clickhouse--表引擎的使用

表引擎决定了如何存储表的数据。包括&#xff1a; 数据的存储方式和位置&#xff0c;写到哪里以及从哪里读取数据。(默认是在安装路径下的 data 路径)支持哪些查询以及如何支持。&#xff08;有些语法只有在特定的引擎下才能用&#xff09;并发数据访问。索引的使用&#xff0…...

tauri输入js脚本的方法和注意事项initialization_script

注入js脚本最常用的就是initialization_script&#xff0c;通过这个方法注入的js脚本在页面每个页面都会执行&#xff0c;这个在tauri文档也可以搜到&#xff1a;WebviewWindowBuilder in tauri::webview - Rust&#xff0c;但是请注意&#xff0c;这个方法只能用在WindowBuild…...

注意力机制深度优化

###一、注意力机制深度优化 1.FlashAttentionV3(2024最新版) # 安装最新版&#xff08;需H100/A100 GPU&#xff09; pip install flash-attn3.0.0 --no-build-isolation# 启用FP8混合精度&#xff08;需H100&#xff09; model AutoModelForCausalLM.from_pretrained("…...

基于springboot的学习社区博客

一、系统架构 前端&#xff1a;html | bootstarp | jquery | css | ajax 后端&#xff1a;springboot | mybatis 环境&#xff1a;jdk1.8 | mysql | maven 二、代码及数据 三、功能介绍 01. web端-注册 02. web端-登录 03. web端-首页 04. web端-文章明…...

python-leetcode 42.验证二叉搜索树

题目&#xff1a; 给定二叉树的根节点root,判断是否是一个有效二叉搜索树 有效二叉搜索树&#xff1a; 1.节点的左子树只包含小于当前节点的树 2.节点的右子树只包含大于当前节点的树 3.所有左子树和右子树自身必须也是二叉搜索树 方法一&#xff1a;递归 如果该二叉树的…...

基于PSO-LSTM长短期记忆神经网络的多分类预测【MATLAB】

一、研究背景与意义 在时间序列分类、信号识别、故障诊断等领域&#xff0c;多分类预测任务对模型的时序特征捕捉能力提出了极高要求。传统LSTM网络虽能有效建模长程依赖关系&#xff0c;但其性能高度依赖超参数的选择&#xff0c;例如隐含层神经元数量、学习率、迭代次数等。…...

拓扑排序的核心算法:BFS应用与实践

目录 一、拓扑排序简介 二、BFS解决拓扑排序的步骤 三、C实现 四、代码解释 五、总结 一、拓扑排序简介 拓扑排序是对有向无环图&#xff08;DAG&#xff09;进行排序的一种方法&#xff0c;使得对于图中的每一条有向边 (u, v)&#xff0c;u 在排序中总是位于 v 的前面。拓…...

ZLMediaKi集群设置

要在集群环境中部署 ZLMediaKit&#xff0c;您可以按照以下步骤进行操作。ZLMediaKit 是一个高性能的流媒体服务器&#xff0c;支持 RTMP、RTSP、HLS 等协议。以下是一个详细的集群部署方案&#xff1a; ### 1. 环境准备 - **服务器**&#xff1a;准备多台服务器&#xff0c;…...

Linux下网络运维命令总结

一、网络连通性测试 ping 作用&#xff1a;检测目标主机是否可达&#xff0c;并测量网络延迟。 示例&#xff1a; ping www.example.com持续发送ICMP报文&#xff0c;按CtrlC停止。 ping -c 4 www.example.com发送4个ICMP报文后停止。 traceroute 作用&#xff1a;显示数据包…...

10. 九转金丹炼矩阵 - 矩阵置零(标记优化)

哪吒在数据修仙界中继续他的修炼之旅。这一次,他来到了一片神秘的金丹谷,谷中有一座巨大的九转金丹炉,炉身闪烁着神秘的光芒。金丹炉的入口处有一块巨大的石碑,上面刻着一行文字:“欲破此炉,需以九转金丹之力,炼矩阵之零,标记优化定乾坤。” 哪吒定睛一看,石碑上还有…...

Cocos Creator Shader入门实战(一):材质和Effect的了解

引擎版本&#xff1a;3.8.5 环境&#xff1a; Windows 简介 在Cocos Creator中&#xff0c;游戏炫彩缤纷的效果是借助着色器(Shader)来实现的。 Cocos主要基于OpenGL ES&#xff0c;而Shader的编写则是在可编程渲染管线中基于修改&#xff1a;顶点着色器(Vertex) 和 片段着色…...

学习笔记04——JMM内存模型

一、Java内存模型&#xff08;JMM&#xff09;是什么&#xff1f; Java内存模型&#xff08;Java Memory Model, JMM&#xff09;是Java多线程编程中共享内存的访问规则&#xff0c;定义了线程如何与主内存&#xff08;Main Memory&#xff09;和工作内存&#xff08;Work Mem…...

前端面试真题 2025最新版

文章目录 写在前文CSS怪异盒模型JS闭包闭包的形成闭包注意点 CSS选择器及优先级优先级 说说flex布局及相关属性Flex 容器相关属性&#xff1a;Flex 项目相关属性 响应式布局如何实现是否用过tailwindcss&#xff0c;有哪些好处好处缺点 说说对象的 prototype属性及原型说说 pro…...

Android 老项目 jcenter 库失效

最近重新维护了一些老项目发现大部分jcenter库失效了&#xff0c; Could not resolve com.xx:2.1.3. 如果你也遇到了&#xff0c;不妨试试 替换为 aliyun的jcenter服务&#xff0c;就不用一个个找代替库了。 project 下的 build.gradle 文件添加&#xff1a; maven { url htt…...

《论多源数据集成及应用》审题技巧 - 系统架构设计师

论多源数据集成及应用写作框架 一、考点概述 本论题“论多源数据集成及应用”主要考察的是计算机软件测试工程师在数据管理和集成方面的专业知识与实践能力。论题聚焦于信息爆炸时代企业、组织和个人所面临的数据挑战&#xff0c;特别是如何有效地收集、整理和清洗来自不同渠…...

2025.2.23机器学习笔记:PINN文献阅读

2025.2.23周报 一、文献阅读题目信息摘要Abstract创新点网络架构架构A架构B架构C 实验结论后续展望 一、文献阅读 题目信息 题目&#xff1a; Physics-Informed Neural Networks for Modeling Water Flows in a River Channel期刊&#xff1a; IEEE TRANSACTIONS ON ARTIFICI…...

Python Django系列—入门实例(二)

数据库配置 现在&#xff0c;打开 mysite/settings.py 。这是个包含了 Django 项目设置的 Python 模块。 默认情况下&#xff0c;​ DATABASES 配置使用 SQLite。如果你是数据库新手&#xff0c;或者只是想尝试 Django&#xff0c;这是最简单的选择。SQLite 包含在 Python 中…...

【DeepSeek系列】05 DeepSeek核心算法改进点总结

文章目录 一、DeepSeek概要二、4个重要改进点2.1 多头潜在注意力2.2 混合专家模型MoE2.3 多Token预测3.4 GRPO强化学习策略 三、2个重要思考3.1 大规模强化学习3.2 蒸馏方法&#xff1a;小模型也可以很强大 一、DeepSeek概要 2024年&#xff5e;2025年初&#xff0c;DeepSeek …...

独立开发者之Google Analytics使用教程

Google Analytics&#xff08;GA&#xff09;是Google提供的一款免费的网络分析服务&#xff0c;用于追踪和报告网站流量。以下是独立开发者如何使用Google Analytics的详细教程&#xff1a; 1. 创建Google Analytics账户 注册Google账户&#xff1a;如果你还没有Google账户&…...

C++ 编程语言简介

C 是一种通用编程语言&#xff0c;它是作为 C 语言的增强而开发的&#xff0c;以包含面向对象的范例。它是一种命令式和编译语言。 C 是一种高级的通用编程语言&#xff0c;专为系统和应用程序编程而设计。它由贝尔实验室的 Bjarne Stroustrup 于 1983 年开发&#xff0c;作为…...

计算机毕业设计SpringBoot+Vue.js明星周边产品销售网站(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

JavaScript系列(86)--现代构建工具详解

JavaScript 现代构建工具详解 &#x1f528; 现代前端开发离不开构建工具&#xff0c;它们帮助我们处理模块打包、代码转换、资源优化等任务。让我们深入了解主流的构建工具及其应用。 构建工具概述 &#x1f31f; &#x1f4a1; 小知识&#xff1a;构建工具主要解决代码转换…...

C/C++高性能Web开发框架全解析:2025技术选型指南

一、工业级框架深度解析&#xff08;附性能实测&#xff09; 1. Drogon v2.1&#xff1a;异步框架性能王者 核心架构&#xff1a; Reactor 非阻塞I/O线程池&#xff08;参考Nginx模型&#xff09; 协程实现&#xff1a;基于Boost.Coroutine2&#xff08;兼容C11&#xff09;…...

使用Windbg调试目标进程排查C++软件异常的一般步骤与要点分享

目录 1、概述 2、将Windbg附加到已经启动起来的目标进程上&#xff0c;或者用Windbg启动目标程序 2.1、将Windbg附加到已经启动起来的目标进程上 2.2、用Windbg启动目标程序 2.3、Windbg关联到目标进程上会中断下来&#xff0c;输入g命令将该中断跳过去 3、分析实例说明 …...

npm使用了代理,但是代理软件已经关闭导致创建失败

如果在关闭前打开了vscode&#xff0c;此时vscode中的终端没有刷新&#xff0c;就会出现这个问题&#xff0c;最开始会一直转圈圈&#xff0c;直到超时&#xff0c;然后出现该报错 ❯ npm create vuelatest npm error code ECONNREFUSED npm error syscall connect npm error …...

ddd 文章总结分享,ddd实战代码分享, 领域驱动设计java实战源码大全,我看过的ddd java源码

1. 前段时间研究ddd, 收藏了很多相关知识&#xff0c;分享出来&#xff0c;希望能够帮助更多的小伙伴了解ddd, 什么是领域驱动设计&#xff0c;并分享在github发现的开源ddd代码 2. ddd 必须强烈点赞阿里两位大佬&#xff0c;一个为殷浩&#xff0c; 一个为cola作者 2.1.1 殷浩…...