DeepSeek    LeetCode 3686. 稳定子序列的数量 Rust实现
rustimpl Solution {pub fn count_stable_subsequences(nums: Veci32) - i32 {const MOD: i64 1_000_000_007;// dp[p][c]:// p: 0偶数, 1奇数// c: 0末尾连续长度为1, 1末尾连续长度为2let mut dp [[0i64; 2]; 2];for num in nums.iter() {let p (num 1) as usize; // 当前元素奇偶性let q p ^ 1; // 相反奇偶性// 更新长度为2: 追加到原来长度为1的同奇偶子序列后面// 必须先更新使用旧值 dp[p][0]dp[p][1] (dp[p][1] dp[p][0]) % MOD;// 更新长度为1:// 1. 自身单独作为一个新子序列 (1)// 2. 追加到所有以相反奇偶性结尾的稳定子序列后面dp[p][0] (dp[p][0] dp[q][0] dp[q][1] 1) % MOD;}let ans (dp[0][0] dp[0][1] dp[1][0] dp[1][1]) % MOD;ans as i32}}核心思路末尾状态DP本题中“稳定”定义为不能出现连续三个奇偶性相同的元素。构造子序列时我们只需关心· 末尾元素的奇偶性0偶数 / 1奇数· 末尾连续相同奇偶性的长度1或2定义 dp[p][c]· p末尾奇偶性0偶数1奇数· c末尾连续长度0长度为11长度为2遍历数组对每个元素奇偶性 p进行状态转移1. 续接同奇偶长度1→2将当前元素追加到所有以 p 结尾且长度为1的子序列后面形成长度为2。dp[p][1] dp[p][0]⚠️ 关键必须使用更新前的 dp[p][0] 旧值。2. 开始新段长度变为1当前元素可以· 单独作为新子序列1· 追加到相反奇偶性结尾的子序列后面因为奇偶性改变连续长度重置为1dp[p][0] dp[p^1][0] dp[p^1][1]更新顺序先更新 dp[p][1]再更新 dp[p][0]确保后者不会污染前者。最终答案为四个状态之和对 1_000_000_007 取模。复杂度时间复杂度 O(n)空间复杂度 O(1)可处理 nums.length 10^5 的输入。

相关新闻

DBA不会告诉你的SQL优化内幕:索引设计的艺术与陷阱

DBA不会告诉你的SQL优化内幕:索引设计的艺术与陷阱

DBA不会告诉你的SQL优化内幕:索引设计的艺术与陷阱凌晨3点,监控告警疯狂闪烁。一个看似简单的用户查询,让整个MySQL集群CPU飙到98%。开发团队紧急排查,发现罪魁祸首竟然是他们精心设计的“优化索引”。更讽刺的是,删除…

2026/7/24 19:23:47 阅读更多 →
数据库工程与查询优化案例实战‌

数据库工程与查询优化案例实战‌

数据库工程与查询优化案例实战‌ 很多团队做SQL优化都陷入了“头痛医头”的误区:线上慢查询告警了,临时加个索引凑合用,没过多久又出现新的慢SQL,反复折腾几次,核心库的索引数量越堆越多,写入性能被拖垮&am…

2026/7/24 19:23:47 阅读更多 →
市面上口碑好的意识混油半透制造厂哪家强

市面上口碑好的意识混油半透制造厂哪家强

有没有和我一样,装修时冲着高级感选了意式混油半透,结果踩了满坑?刚装完的新家,卧室门和衣柜明明选的同款色调,装完却成了“深浅双色套”;住了不到半年,柜体边角因为基材不稳定开始轻微变形&…

2026/7/24 19:23:47 阅读更多 →

最新新闻

第 2 章:ROS2开发环境搭建

第 2 章:ROS2开发环境搭建

本章目标:在 Ubuntu 22.04 上完成 ROS2 Humble 的完整安装与配置,建立高效的开发工作流。作为嵌入式工程师,你可能已经习惯了 Keil/IAR/VSCode STM32CubeIDE 的开发环境,本章将帮助你建立一套同样顺手的 ROS2 开发环境。2.1 Ubun…

2026/7/24 19:30:49 阅读更多 →
大模型驱动的智能文本校对系统架构与实践

大模型驱动的智能文本校对系统架构与实践

1. 智能文本校对如何重塑内容生产流程 去年我在负责一个大型内容平台的技术升级时,遇到一个典型痛点:编辑团队每天要处理近万篇稿件,人工校对环节占用了40%以上的工作时间。直到我们引入基于大模型的智能校对系统后,整体效率提升了…

2026/7/24 19:30:49 阅读更多 →
TI MCU AES硬件加速器驱动开发:从寄存器解析到安全实践

TI MCU AES硬件加速器驱动开发:从寄存器解析到安全实践

1. 项目概述与AES加密算法核心原理在嵌入式系统,尤其是物联网设备、智能卡、支付终端这些对功耗和实时性有苛刻要求的场景里,数据安全是基石。AES(高级加密标准)作为目前全球最主流的对称加密算法,几乎无处不在。但如果…

2026/7/24 19:30:49 阅读更多 →
YOLOv8靶标弹孔检测系统:从算法优化到工业部署

YOLOv8靶标弹孔检测系统:从算法优化到工业部署

1. 项目概述:靶标弹孔检测系统全流程解析这个项目本质上是一个基于计算机视觉的智能检测系统,专门用于自动识别和定位靶标上的弹孔位置。作为一名在计算机视觉领域摸爬滚打多年的从业者,我见过太多"纸上谈兵"的算法演示&#xff0c…

2026/7/24 19:30:49 阅读更多 →
Godot引擎集成Spine骨骼动画:从原理到性能调优的终极实战指南

Godot引擎集成Spine骨骼动画:从原理到性能调优的终极实战指南

1. 项目概述:为什么要在Godot里折腾Spine? 如果你正在用Godot做2D游戏,尤其是角色动画比较复杂的项目,比如横版动作、RPG或者卡牌对战,那你大概率绕不开一个灵魂拷问:角色动画怎么做?用Godot自带…

2026/7/24 19:30:49 阅读更多 →
文件上传漏洞10种高级绕过技巧:从客户端校验到服务器解析的攻防实战

文件上传漏洞10种高级绕过技巧:从客户端校验到服务器解析的攻防实战

1. 项目概述:为什么文件上传漏洞是Web安全的“阿喀琉斯之踵”在Web渗透测试和CTF比赛的实战中,文件上传功能点往往是攻防双方交锋最激烈的前线。一个看似简单的“选择文件”按钮背后,可能隐藏着通往服务器最高权限的捷径。我见过太多开发团队…

2026/7/24 19:29:49 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻