Kimi LeetCode 3574. 最大子数组 GCD 分数 Rust实现

发布时间:2026/7/15 0:48:16

Kimi    LeetCode 3574. 最大子数组 GCD 分数 Rust实现
这是 LeetCode 3574. 最大子数组 GCD 分数 的 Rust 实现。解题思路核心观察翻倍操作最多只能让子数组的 GCD 乘以 2。因此对于每个子数组我们需要判断是否能通过最多 k 次翻倍操作使 GCD 翻倍。关键步骤1. 预处理统计每个数中因子 2 的个数即 x 能被 2 整除的次数2. 枚举子数组固定左端点 l向右扩展右端点 r3. 维护三个值- g当前子数组的 GCD- mi子数组中因子 2 个数的最小值- t具有最小因子 2 个数的元素个数4. 判断翻倍如果 t k说明需要翻倍的元素超过 k 个无法翻倍否则 GCD 可以翻倍时间复杂度O(n^2 \cdot \log n)空间复杂度O(n)Rust 代码rustimpl Solution {pub fn max_gcd_score(nums: Veci32, k: i32) - i64 {let n nums.len();// 预处理统计每个数中因子 2 的个数let mut cnt vec![0i32; n];for i in 0..n {let mut x nums[i];while x % 2 0 {cnt[i] 1;x / 2;}}let mut ans: i64 0;// 枚举所有子数组for l in 0..n {let mut g: i32 0; // 当前子数组 GCDlet mut mi: i32 1 30; // 最小因子 2 个数let mut t: i32 0; // 具有最小因子 2 个数的元素个数for r in l..n {// 更新 GCDg Self::gcd(g, nums[r]);// 更新最小因子 2 个数及其出现次数if cnt[r] mi {mi cnt[r];t 1;} else if cnt[r] mi {t 1;}// 判断是否能翻倍 GCD// 如果具有最小因子 2 个数的元素个数 k则无法翻倍let val if t k { g as i64 } else { (g * 2) as i64 };let len (r - l 1) as i64;ans ans.max(len * val);}}ans}// 递归实现 GCDfn gcd(a: i32, b: i32) - i32 {if b 0 {a} else {Self::gcd(b, a % b)}}}代码说明- cnt[i] 记录 nums[i] 中因子 2 的个数例如 12 2^2 × 3则 cnt[i] 2- 翻倍操作的本质是将某个数乘以 2相当于增加一个因子 2- 子数组 GCD 中因子 2 的个数取决于子数组中所有数因子 2 个数的最小值 mi- 如果具有最小值 mi 的元素个数 t k则最多 k 次翻倍无法让所有这些元素的因子 2 个数都增加GCD 无法翻倍- 否则可以通过翻倍使 GCD 乘以 2这个解法在 n \le 1500 的约束下可以通过所有测试用例。

相关新闻

OpenClaw配置总踩坑?2026手把手教程:从Node.js安装到多模型API对接(亲测跑通)

OpenClaw配置总踩坑?2026手把手教程:从Node.js安装到多模型API对接(亲测跑通)

2026/7/15 0:38:15

前言 最近发现不少朋友想尝试OpenClaw这类AI工具,但总卡在环境配置上——不是Node版本不对,就是API对接失败,教程东拼西凑还不一定能用。 作为踩过坑的过来人,我整理了这篇从0到1的完整实操文,带你一步步装好OpenCla…

RAG最大陷阱:文档分片不等于知识库,业务域语义隔离才是瓶颈

RAG最大陷阱:文档分片不等于知识库,业务域语义隔离才是瓶颈

2026/7/15 0:38:15

当下多数企业搭建私有化 RAG 知识库时,重心都放在文档解析、文本切片、向量入库这类基础流程上,普遍默认只要完成文档向量化存入向量库,就能搭建可用的企业私有知识库。但规模化落地后会持续暴露核心短板:单纯的向量检索无法区分不…

Dalin L — 我造了一门支持中文编程的语言,完整移植到 Rust 了

Dalin L — 我造了一门支持中文编程的语言,完整移植到 Rust 了

2026/7/15 0:38:15

从 Python 原型到 Rust 移植,从 HM 类型推断到模式匹配,2 小时全链路跑通。 1. 为什么造一门语言? 先回答一个绕不开的问题:为什么不直接用 Python/Rust? 答案是:为了验证设计。 Dalin L 的目标是一门面…

pandas多维聚合实战:银行级生产环境聚合模式详解

pandas多维聚合实战:银行级生产环境聚合模式详解

2026/7/15 1:48:18

1. 项目概述:为什么多维聚合不是“加个groupby”就能搞定的事我在银行风控部门做过三年数据管道开发,后来跳槽到一家头部支付机构做BI平台架构。这期间最常被业务方拍着桌子问的一句话是:“上个月华东区餐饮类商户的交易金额中位数、手续费波…

HTTP 缓存进阶:If-Match、If-None-Match 与 ETag 的实战解析与避坑指南

HTTP 缓存进阶:If-Match、If-None-Match 与 ETag 的实战解析与避坑指南

2026/7/15 1:48:18

1. HTTP缓存机制与ETag基础想象一下你每天都要去超市买牛奶。如果每次都要打开冰箱确认是否喝完,效率就太低了。聪明的做法是在门口贴张便签,记录剩余量。ETag就像这张便签,是服务器给资源贴的"指纹标签"。ETag的本质是服务器生成的…

N皇后问题的遗传算法实战:Python手把手实现与调参指南

N皇后问题的遗传算法实战:Python手把手实现与调参指南

2026/7/15 1:48:18

1. 这不是教科书,而是一次真实的GA项目复盘:从Matlab到Python的N皇后实战手记你点开这篇文章,大概率不是为了背诵“遗传算法是模拟生物进化过程的优化方法”这种定义。你真正想搞清楚的是:当一个真实项目摆在面前——比如用遗传算…

数据编码的本质:从符号到向量的语义建模与工程决策

数据编码的本质:从符号到向量的语义建模与工程决策

2026/7/15 1:48:18

1. 项目概述:为什么“编码”不是翻译,而是重建数据的底层语言 你有没有试过把一份带“男/女”、“高/中/低”、“春/夏/秋/冬”的销售报表直接扔进一个线性回归模型里跑?结果模型报错、系数乱跳、R跌到0.2——你第一反应可能是“数据有问题”…

PyTorch语义分割特征图可视化:从通道聚合到模型洞察

PyTorch语义分割特征图可视化:从通道聚合到模型洞察

2026/7/15 1:48:18

1. 为什么需要可视化语义分割特征图第一次看到神经网络中间层的特征图时,我仿佛打开了黑箱模型的观察窗口。这些看似杂乱无章的彩色斑点,实际上是模型理解世界的"语言"。在语义分割任务中,特征图可视化不仅能验证模型是否正常工作&…

DRA79x SoC硬件设计:电源、时钟与引脚配置的工程实践指南

DRA79x SoC硬件设计:电源、时钟与引脚配置的工程实践指南

2026/7/15 1:38:18

1. 项目概述:深入理解DRA79x的电源、时钟与引脚设计在嵌入式系统,尤其是汽车电子这类高可靠性要求的领域,硬件设计的基石从来不是那些炫酷的功能,而是电源、时钟和引脚配置这些“枯燥”的基础。我接触过不少项目,前期功…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/14 10:03:09

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/13 20:43:19

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/15 0:26:43

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

【LINUX】驱动

【LINUX】驱动

2026/7/15 0:08:14

【LINUX驱动】【字符设备】【中断】【Platform】【网课 设备树】【GPIO】【PINCTRL】【INPUT】【IIC】【SPI】【网络驱动】【屏幕驱动】【一 设备树】【二 内核模块编译】【三 基本驱动框架】【四 Platform总线设备驱动框架】【五 驱动子系统】【六 综合】

【1982-2026】全国高精度建筑轮廓|村级精度|SHP矢量

【1982-2026】全国高精度建筑轮廓|村级精度|SHP矢量

2026/7/15 0:08:14

🔍 数据简介 本次分享1982-2026年全国村级精度建筑轮廓矢量数据,覆盖全国各省市区县,到村级别精细,为2026年最新实时采集成果,非网传仅60/77个城市的老旧数据。 数据含带高度/不带高度双版本,单体建筑边界精…

【1975-2026】全国水系水路数据|河流/水库/运河|SHP矢量

【1975-2026】全国水系水路数据|河流/水库/运河|SHP矢量

2026/7/15 0:08:14

🔍 数据简介 本次分享1975-2026年全国高精度水系水路矢量数据,覆盖全国全域,包含河流、水系、水库、运河、湿地、冰川、沟渠等全类别水文要素。 数据集包含双层矢量图层,字段分类清晰、要素齐全,支持2013-2026逐年完整…