leedcode 115. 不同的子序列

思路分析:
dp[i][j] 表示 s 串中使用了 i 个字符,t 串中使用了 j 个字符,s 包含 t 中子序列的个数
当 s[i] == t[j] 时,考虑当前字符是否要匹配,若匹配,方案数则是由 i-1 和 j-1 往过累加,若不匹配,则是由 dp[i-1][j] 这个状态去累加
代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | class Solution { public : int numDistinct(string s, string t) { int len1 = s.length(); int len2 = t.length(); unsigned long long dp[1005][1005]; memset (dp, 0, sizeof (dp)); dp[0][0] = 1; for ( int i = 1; i <= len1; i++){ dp[i][0] = 1; for ( int j = 1; j <= len2; j++){ if (s[i-1] == t[j-1]) dp[i][j] = dp[i-1][j-1] + dp[i-1][j]; else dp[i][j] = dp[i-1][j]; } } return dp[len1][len2]; } }; |
作者:静默虚空
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
东北日出西边雨 道是无情却有情
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2018-06-30 组合数学中的常用公式