news 2026/4/23 14:53:31

leetcode 困难题 940. Distinct Subsequences II 不同的子序列 II-耗时100

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 困难题 940. Distinct Subsequences II 不同的子序列 II-耗时100

Problem: 940. Distinct Subsequences II 不同的子序列 II

耗时100%,动态规划的,考虑两种情况,每种字符都不相同,存在相同的字符,dp[i]表示s[0~i]子字符串的总数,若是s[0~i-1]不存在s[i],那么结果就是dp[i] = (dp[i-1] * 2) + 1;也就是之前的所有子字符串最后面加上s[i]即可,以及包含了s[i]这个单个字符

若s[0~i-1]存在s[i],假设s[j]s[i] (j < i),那么s[0i-1]的子字符串s[j]可以被s[i]替代,相当于s[0j-1]的子字符串添加上s[i]或s[j],此时末尾加上s[i]或者s[j]效果相同,所以重复了一次,需要减去的也就是dp[i] = dp[i] - 1 - dp[j-1] + modulo; -1是单字符s[i]本身重复了一次,而且当j0时,需要特殊考虑此时dp[i] = dp[i] - 1 + modulo

考虑到dp[i] = dp[i] - 1 - dp[ind-1]可能<0,所以需要加上模1e9+7

Code

class Solution { public: int ch[26]; const long long modulo = 1e9 + 7; int distinctSubseqII(string s) { fill(ch, ch + 26, -1); int n = s.size(), ind; if(n==1) return 1; vector<long long> dp(n, 0); dp[0] = 1; ch[s[0]-'a'] = 0; for(int i = 1; i < n; i++) { dp[i] = (dp[i-1] << 1) + 1; ind = ch[s[i]-'a']; if(ind == 0) { dp[i] = dp[i] - 1 + modulo; } else if(ind > 0){ dp[i] = dp[i] - 1 - dp[ind-1] + modulo; } ch[s[i]-'a'] = i; dp[i] = dp[i] % modulo; } int ret = dp[n-1] % modulo; return ret; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 13:12:36

收藏!小白程序员也能轻松掌握大模型营销术,面试必看!

本文的重点不会在技术相关上&#xff0c;关于微调的分类、特点等等&#xff0c;互联网上精妙的文章比比皆是&#xff0c;我更想分享可能比技术更重要的、也是绝大多数新手程序员可能认为是无用之术的——营销。 面试&#xff0c;在本质上是把自己推销给面试官&#xff0c;在技术…

作者头像 李华
网站建设 2026/4/22 14:43:52

综合项目规划:全栈学生管理系统需求分析与架构设计

综合项目规划&#xff1a;全栈学生管理系统需求分析与架构设计 ——一个老架构师的“别再用 Excel 管学生”的血泪忠告&#xff1a;在国产化教育信息化浪潮里&#xff0c;手工台账 数据孤岛 安全漏洞 国产数据库价值归零&#xff01; 开场白&#xff1a;你的“学生管理”还在…

作者头像 李华
网站建设 2026/4/23 12:25:50

2026指纹浏览器底层架构深度解析:内核级沙箱隔离与设备指纹生成机制

摘要 随着 2026 年互联网平台风控技术向多维度、智能化演进&#xff0c;设备指纹采集已覆盖从应用层到内核层的全链路指标&#xff0c;传统基于用户态 Hook 的指纹修改方案逐渐失效。指纹浏览器作为多账号运营、隐私保护、合规操作的核心工具&#xff0c;其底层架构设计直接决…

作者头像 李华
网站建设 2026/4/23 12:25:53

2026指纹浏览器技术实践:多场景适配与风控对抗优化

摘要 在 2026 年互联网风控持续收紧的背景下&#xff0c;指纹浏览器已成为多账号运营、隐私保护、跨境操作等场景的必备工具。然而&#xff0c;不同业务场景对指纹浏览器的技术需求差异显著&#xff0c;静态 IP 场景侧重环境稳定性&#xff0c;动态 IP 场景侧重隔离与切换效率…

作者头像 李华