logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

使用动态规划求解最长公共子序列(LCS)

给定两个字符串 X 和 Y,我们需要找到它们的最长公共子序列。子序列是指从一个序列中删除一些元素(可以不删除)之后剩下的元素保持相对顺序。例如,给定字符串 X = "ABCBDAB" 和 Y = "BDCAB",它们的最长公共子序列是 "BDAB",长度为 4。我们可以使用一个二维数组 dp[i][j] 来存储中间结果,其中 dp[i][j] 表示字符串 X 的前 i 个字符与字符串 Y 的前 j

文章图片
#动态规划#算法
动态规划算法:

动态规划(Dynamic Programming, DP)是一种将复杂问题分解为更简单的子问题来求解的算法思想。它通过保存中间子问题的解,避免了重复计算,从而大大提高了解决问题的效率。动态规划通常用于求解最优化问题,比如最短路径、最大收益等。

文章图片
#算法#动态规划
735. 小行星碰撞 (C++) 贪心算法 弱智版 击败5%的人

找出碰撞后剩下的所有小行星。碰撞规则:两个小行星相互碰撞,较小的小行星会爆炸。如果两颗小行星大小相同,则两颗小行星都会爆炸。两颗移动方向相同的小行星,永远不会发生碰撞。对于数组中的每一个元素,其绝对值表示小行星的大小,正负表示小行星的移动方向(正表示向右移动,负表示向左移动)。每一颗小行星以相同的速度移动。,表示在同一行的小行星。

文章图片
#算法
到底了