新闻详情

新闻详情

首页 / 资讯中心 / 详情

Kimi LeetCode 3336. 最大公约数相等的子序列数量 Python3实现

发布时间:2026/9/21 7:54:47来源:尧图网络
Kimi    LeetCode 3336. 最大公约数相等的子序列数量 Python3实现
这是 LeetCode 3336. 最大公约数相等的子序列数量 的 Python3 实现。---题目概述给定整数数组 nums求满足以下条件的非空子序列对 (seq1, seq2) 的数量- seq1 和 seq2 不相交没有共同下标- gcd(seq1) gcd(seq2)结果对 10^9 7 取模。---解题思路三维动态规划压缩为字典定义 dp[(g1, g2)] 为处理完部分元素后seq1 的 GCD 为 g1、seq2 的 GCD 为 g2 的方案数。其中 g10 或 g20 表示对应子序列为空。对于每个元素 num有三种选择1. 放入 seq1g1 更新为 gcd(g1, num)若 g10 则变为 num2. 放入 seq2g2 更新为 gcd(g2, num)若 g20 则变为 num3. 不放入任何子序列状态不变最终答案为所有 g1 g2 ! 0 的状态之和。 由于 nums[i] ≤ 200GCD 的可能取值有限使用 defaultdict 可以有效压缩状态空间避免遍历大量无效状态。---Python3 代码pythonfrom math import gcdfrom collections import defaultdictfrom typing import ListMOD 10 ** 9 7class Solution:def subsequencePairCount(self, nums: List[int]) - int:动态规划dp[(g1, g2)] 表示已处理元素中seq1的gcd为g1seq2的gcd为g2的方案数。g10 或 g20 表示对应子序列为空。对于每个num有三种选择1. 放入seq1更新g1 gcd(g1, num)若g10则变为num2. 放入seq2更新g2 gcd(g2, num)若g20则变为num3. 不放入任何子序列状态不变最终答案为所有 g1 g2 ! 0 的状态之和。dp defaultdict(int)dp[(0, 0)] 1 # 初始状态两个子序列都为空for num in nums:# 遍历当前所有状态避免迭代时修改字典items list(dp.items())for (g1, g2), cnt in items:# 选择1num放入seq1ng1 num if g1 0 else gcd(g1, num)dp[(ng1, g2)] (dp[(ng1, g2)] cnt) % MOD# 选择2num放入seq2ng2 num if g2 0 else gcd(g2, num)dp[(g1, ng2)] (dp[(g1, ng2)] cnt) % MOD# 选择3num不放入任何子序列状态已保留无需操作ans 0for (g1, g2), cnt in dp.items():if g1 ! 0 and g1 g2:ans (ans cnt) % MODreturn ans---复杂度分析项目 复杂度 说明时间 O(N \cdot S) N \leq 200 为数组长度S 为状态数实际运行中由于 GCD 取值有限状态数远小于理论上限空间 O(S) 使用 defaultdict 存储有效状态已通过全部示例验证- nums [1,2,3,4] → 10- nums [10,20,30] → 2- nums [1,1,1,1] → 50
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Voyager 資料夾管理指南:為 Gemini 與 AI Studio 的 AI 對話打造真正的「檔案系統」 2026/9/21 7:43:50

Voyager 資料夾管理指南:為 Gemini 與 AI Studio 的 AI 對話打造真正的「檔案系統」

AI 应用前端 【免费下载链接】voyager Enhancement suite for Gemini, AI Studio, Claude & ChatGPT — plus a prompt manager for any websites, DeepSeek Harness included. / 面向 Gemini、AI Studio、Claude 与 ChatGPT 的增强套件;其中的提示词管理器可用…

阅读更多 →
gatsby-source-graphql 插件全解析:将任意第三方 GraphQL API 缝合进 Gatsby 数据层 2026/9/21 7:43:50

gatsby-source-graphql 插件全解析:将任意第三方 GraphQL API 缝合进 Gatsby 数据层

前端静态站点Web框架 【免费下载链接】gatsby React-based framework with performance, scalability, and security built in. 项目地址: https://gitcode.com/gh_mirrors/ga/gatsby 点击查看 免费下载 本篇技术指南以 gatsby-source-graphql 插件的 CHANGELOG 版…

阅读更多 →
Lightweight Charts v3 到 v4 迁移指南:破坏性变更逐项分析与实战改造方案 2026/9/21 7:43:50

Lightweight Charts v3 到 v4 迁移指南:破坏性变更逐项分析与实战改造方案

Lightweight Charts v3 到 v4 迁移指南:破坏性变更逐项分析与实战改造方案 【免费下载链接】lightweight-charts Performant financial charts built with HTML5 canvas 项目地址: https://gitcode.com/gh_mirrors/li/lightweight-charts 本指南以 Lightweig…

阅读更多 →
FoundationDB 存储基准测试上 RAM Disk:mako_storage_bench.sh 在 okteto 开发 Pod 上的 tmpfs 实践指南 2026/9/21 7:43:50

FoundationDB 存储基准测试上 RAM Disk:mako_storage_bench.sh 在 okteto 开发 Pod 上的 tmpfs 实践指南

分布式数据库KV存储数据库后端 【免费下载链接】foundationdb FoundationDB - the open source, distributed, transactional key-value store 项目地址: https://gitcode.com/gh_mirrors/fo/foundationdb 点击查看 免费下载 mako_storage_bench.sh 是 FoundationD…

阅读更多 →
Trigger.dev SDK 公共包修改规范:Changesets 发布流程、版本策略与 @trigger.dev/core 子路径导入指南 2026/9/21 7:43:50

Trigger.dev SDK 公共包修改规范:Changesets 发布流程、版本策略与 @trigger.dev/core 子路径导入指南

AI Agent后端任务调度开发工具可观测性AI 应用 【免费下载链接】trigger.dev Trigger.dev – build and deploy durable AI agents and workflows 项目地址: https://gitcode.com/gh_mirrors/tr/trigger.dev 点击查看 免费下载 本篇指南围绕仓库内的 .claude/rules…

阅读更多 →
VUX 的 vux2 模板与 Vue 官方 webpack 模板有什么区别:模板选型、预置配置与 vux-loader 原理 2026/9/21 7:40:49

VUX 的 vux2 模板与 Vue 官方 webpack 模板有什么区别:模板选型、预置配置与 vux-loader 原理

UI组件前端 【免费下载链接】vux Mobile UI Components based on Vue & WeUI 项目地址: https://gitcode.com/gh_mirrors/vu/vux 点击查看 免费下载 vux2 是 VUX 官方维护的 Vue 2.x 工程模板,它 fork 自 Vue 官方 webpack 模板并针对 VUX 组件库做…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞