day44 | 子序列问题

今天主要是

最长公共子序列 和 判断子序列这两类问题的区分。

在公共子序列问题中有不相等的时候 dp[i][j]=max(dp[i-1][j],dp[i][j-1])

和子系列不相等的时候却是 dp[i][j] = dp[i][j-1]

因为判断子系列问题是给定字符串 s 和 t ,判断 s 是否为 t 的子序列。

实际上我们转换的问题是s 字符串在在 t 字符串中最长距离。 因此不相等的时候要保持 s 字符串的完整

在公共子序列问题中我们求得是 s 和 t 中最大的公共长度,无法确保当前是 s 保持完整还是 t 保持完整才能求得最终的最大公共长度。

全部评论

相关推荐

Git的工作流程通常包括以下几个步骤:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=f818c6d22c98401682f8662612b9e57f克隆(Clone):首先,通过克隆一个远程仓库到本地,创建一个本地仓库的副本。这样可以在本地进行开发和修改。添加和修改(Add and Modify):在本地仓库中进行代码的添加和修改。开发者可以通过添加新文件、修改现有文件或删除文件来进行开发工作。暂存(Stage):将修改的文件添加到暂存区(也称为索引),准备提交到版本库。暂存区相当于一个缓冲区,用于存放即将提交的修改。提交(Commit):将暂存区的修改提交到版本库。每次提交都会生成一个唯一的提交记录,包含了修改的详细信息,如作者、时间戳和提交消息。推送(Push):将本地的提交推送到远程仓库,与团队成员共享代码。推送操作将本地的提交同步到远程仓库,使得其他人可以看到和使用这些修改。拉取(Pull):从远程仓库拉取最新的代码更新到本地仓库。当其他人推送了新的修改到远程仓库时,开发者可以通过拉取操作获取这些更新。合并(Merge):将不同分支的修改合并到一起。当开发者在不同的分支上进行并行开发时,可以使用合并操作将分支的修改合并到主分支或其他分支上。冲突解决(Conflict Resolution):当多个分支对同一文件进行了不同的修改时,可能会发生冲突。开发者需要手动解决这些冲突,选择保留哪些修改或进行修改的合并。这些步骤构成了Git的基本工作流程。通过这个工作流程,开发者可以有效地管理代码的版本、协作开发和跟踪修改历史。
点赞 评论 收藏
分享
09-11 12:01
门头沟学院 Java
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务