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

DeepSeek LeetCode 3686. 稳定子序列的数量 Java实现

```java
class Solution {
private static final int MOD = 1_000_000_007;

public int countStableSubsequences(int[] nums) {
// dp[p][c]:
// p = 0 表示偶数,1 表示奇数
// c = 0 表示结尾连续同奇偶长度为1,c = 1 表示长度为2
long[][] dp = new long[2][2];

for (int num : nums) {
int x = num & 1; // 当前元素的奇偶性
int y = x ^ 1; // 相反的奇偶性

// 关键:先更新 dp[x][1],使用旧值 dp[x][0],避免被本轮更新污染
// 把原来以 x 结尾且长度为 1 的子序列,追加当前元素,变成以 x 结尾长度为 2
dp[x][1] = (dp[x][1] + dp[x][0]) % MOD;

// 更新 dp[x][0]:
// 1. 保留原来的(不选当前元素)
// 2. 追加到以相反奇偶性结尾的子序列后面,此时长度为1
// 3. 当前元素单独作为一个新子序列
dp[x][0] = (dp[x][0] + dp[y][0] + dp[y][1] + 1) % MOD;
}

long ans = (dp[0][0] + dp[0][1] + dp[1][0] + dp[1][1]) % MOD;
return (int) ans;
}
}
```

核心思路:结尾状态DP

这道题“稳定”的定义是子序列中不能出现连续三个奇偶性相同的元素。因此,我们构造子序列时,只需要关心它末尾元素的奇偶性,以及末尾连续相同奇偶性的长度是1还是2。

我们定义dp[p][c]:

· p = 0代表偶数,1代表奇数。
· c = 0代表以奇偶性p结尾,且连续长度恰好为1;c = 1代表连续长度恰好为2。

遍历数组,对每个元素x(奇偶性为p),进行状态更新:

1. 续接同奇偶:将当前元素加到所有以p结尾且长度为1的子序列后面,使其变为长度2。即dp[p][1] += dp[p][0](关键:这里必须用更新前的dp[p][0]值)。
2. 开始新段:当前元素可以:
· 单独作为一个新子序列,长度1(+1)。
· 加到所有以相反奇偶性p^1结尾的稳定子序列后面,因为奇偶性改变,新的连续长度变为1。即dp[p][0] += dp[p^1][0] + dp[p^1][1]。

注意更新顺序:必须先更新dp[p][1]再更新dp[p][0],确保dp[p][0]使用的是旧值,不会把本轮刚生成的“长度为1”的子序列(来自dp[p][0]旧值)错误地也计入长度2的统计。

最终答案就是四个状态之和,并对1_000_000_007取模。

该算法时间复杂度O(n),空间复杂度O(1),可高效处理nums.length <= 10^5的数据规模。

http://www.jsqmd.com/news/1257351/

相关文章:

  • 专业解锁中兴光猫工厂模式:zteOnu工具实战指南
  • 2026北京朗格回收哪家口碑好?尚典萨克森/奥德修斯鉴定实力过硬,这份本地测评榜单给出答案 - 奢品流通笔谈
  • 本地大语言模型调优实战:显存管理与输出质量优化
  • Claude Team计划门槛降至2人:小团队AI协作成本与功能全解析
  • 图神经网络反爬对抗:从GCN检测模型到鲁棒性防御的攻防博弈
  • 广州汽车用品服务企业做GEO服务商怎么选?2026本地靠谱选型指南与深度测评 - 企业新闻快传
  • 不想只做脚本小子,网络安全进阶必须掌握的编程与审计技能
  • 给 AI Agent 的 Skill 装上”自我进化”引擎:一套可落地的优化闭环方案
  • Switch游戏安装终极指南:3分钟学会所有格式兼容方法
  • OpenAI布局AI广告业务:技术优势、挑战与商业化路径分析
  • 宁德甲醛检测怎么选?2026新政后CMA实验室的标准、流程、价格与避坑指南——宁德闽环测研甲醛检测中心 - 衡境测研
  • 低资源语言大模型如何破解文化纠缠同形异义词挑战
  • MCP协议无状态会话设计:原理、实现与分布式部署实践
  • AI训练数据质量危机:高质量书籍如何解决模型崩溃与数据污染
  • NI HIL自动化测试12-Veristand01-Veristand Engine
  • 2026年北京合同纠纷律师精选推荐 北京卓航等5家值得关注的专业律所 - 本地品牌推荐
  • 还在为图片文字提取烦恼?Umi-OCR:一款彻底改变你工作流的免费离线OCR工具
  • 收藏!学完AI大模型开发,这6个高薪岗位你值得拥有!
  • 2026北京奢侈品珠宝首饰回收哪家口碑好?尚典卡地亚/宝格丽鉴定实力过硬,这份本地测评榜单给出答案 - 奢品流通笔谈
  • 3步解锁网易云音乐限制:ncmdump让NCM格式音乐重获播放自由
  • Adobe-GenP 3.0破解工具:3分钟免费激活Adobe全家桶的终极指南
  • 从「能纠错」到「算得起」:量子计算真正的考验才刚刚开始
  • 直管200人AI底座负责人离职,小鹏自研芯片如何接棒
  • 2026年广州企业财税行业企业做GEO服务商怎么选?本地靠谱选型指南与五家服务商深度测评 - 科技快讯
  • 广州儿童成长服务企业做GEO服务商怎么选?2026年五家服务商深度测评与靠谱选型指南 - 子柔传媒
  • 抖音无水印下载:如何用开源工具轻松保存高清视频?
  • 基于EfficientNetB7的街景门牌字符识别技术解析
  • 夸克网盘SVIP会员:从限速原理到高效文件管理策略
  • 大麦网抢票终极指南:Python自动化脚本轻松搞定热门演出门票
  • 2026北京宝格丽回收哪家口碑好?尚典B.Zero1/Divas‘ Dream鉴定实力过硬,这份本地测评榜单给出答案 - 奢品流通笔谈