DeepSeek LeetCode 3826. 最小分割分数 Rust实现

发布时间:2026/11/11 22:19:45

DeepSeek    LeetCode 3826. 最小分割分数 Rust实现 这道题的核心解法是斜率优化DP (Convex Hull Trick)。Rust 的实现思路与 Python / Java 一致但需要利用其强大的泛型和迭代器来写出更安全、高效的代码。 核心思路回顾状态转移方程可变形为查询直线 y m*x c 在 x pref[i] 处的最小值其中直线参数为· 斜率 m -2 * pref[j]· 截距 c dp_prev[j] pref[j] * pref[j] - pref[j]通过维护一个下凸包 (Lower Hull) 并用双端队列 (VecDeque) 来保证 O(1) 的查询和插入。 Rust 代码实现rustuse std::collections::VecDeque;impl Solution {pub fn min_partition_score(nums: Veci32, k: i32) - i64 {let n nums.len();let k k as usize;// 1. 计算前缀和 (使用 i64 防止溢出)let mut pref vec![0i64; n 1];for (i, num) in nums.iter().enumerate() {pref[i 1] pref[i] num as i64;}// 2. 初始化 dp_prev: 只分 1 段的情况 (存储两倍分数)let mut dp_prev vec![0i64; n 1];for i in 1..n {let s pref[i];dp_prev[i] s * (s 1); // 两倍分数避免浮点数}// 3. 迭代分段数从 2 到 kfor _ in 2..k {let mut dp_cur vec![0i64; n 1];let mut hull: VecDeque(i64, i64) VecDeque::new(); // (斜率 m, 截距 c)for i in 1..n {let j i - 1;// 将新的候选直线 (基于 j) 加入凸包if j 1 {let m -2 * pref[j];let c dp_prev[j] pref[j] * pref[j] - pref[j];Self::add_line(mut hull, m, c);}// 查询在 x pref[i] 处的最优值if !hull.is_empty() {while hull.len() 2 {let (m1, c1) hull[0];let (m2, c2) hull[1];// 如果第一条直线在 x 处不比第二条优则弹出if m1 * pref[i] c1 m2 * pref[i] c2 {hull.pop_front();} else {break;}}let (best_m, best_c) hull[0];dp_cur[i] best_m * pref[i] best_c pref[i] * pref[i] pref[i];} else {// 处理不可能的状态如 i 当前分段数dp_cur[i] i64::MAX / 4;}}dp_prev dp_cur;}// 最终答案除以 2 (因为全程使用两倍分数)dp_prev[n] / 2}// 辅助函数向凸包中添加直线 (维护下凸包)fn add_line(hull: mut VecDeque(i64, i64), m: i64, c: i64) {// 检查新直线是否会让队尾的直线变得无用while hull.len() 2 {let (m1, c1) hull[hull.len() - 2];let (m2, c2) hull[hull.len() - 1];// 判断 (c2 - c1) * (m1 - m) (c - c1) * (m1 - m2)// 使用交叉相乘避免浮点数if (c2 - c1) * (m1 - m) (c - c1) * (m1 - m2) {hull.pop_back();} else {break;}}hull.push_back((m, c));}}⏳ 复杂度分析· 时间复杂度: O(k * n)。每个状态至多入队出队一次。· 空间复杂度: O(n)。用于存储 DP 数组和凸包。这个 Rust 实现直接翻译了斜率优化的核心逻辑并利用 i64 安全地处理了所有整数运算避免了溢出风险。
延伸阅读

更多相关文章

2026/11/11 22:19:45

SkillSmith:通过文本与权重组合构建AI技能系统的实践指南

在构建智能应用时,我们常常面临一个挑战:如何快速、灵活地组合已有的能力,创造出满足特定需求的新功能?无论是希望将文本描述转化为可执行的代码,还是将多个预训练模型的能力融合,传统的开发流程往往涉及复…

2026/11/11 22:19:44

辐射EMC测试全流程解析:从原理、标准到设计整改实战

1. 项目概述:为什么我们需要深入理解辐射EMC测试?如果你是一名硬件工程师、产品经理,或者负责将任何带电的设备推向市场,那么“辐射电磁兼容性测试”这个词,对你而言绝不是一个遥远的、只属于实验室的概念。它更像是一…

2026/11/11 19:09:37

机动目标跟踪:Singer与当前统计模型原理、实现与对比

1. 项目概述:从理论到实践的机动目标跟踪在目标跟踪领域,尤其是雷达、声呐或视觉系统中,我们常常面临一个核心挑战:目标并非总是匀速直线运动。它可能突然加速、减速或转弯,这种不可预测的运动变化,我们称之…

2026/11/11 22:17:59

邢台考电工证的地方怎么复审延期?电子证书过期了怎么办

邢台考电工证的地方怎么复审延期?电子证书过期了怎么办 证书过期了不知道怎么复审延期,是很多电工从业者最头疼的问题。尤其在邢台考电工证的地方,很多人拿到低压电工证或高压电工证后,一忙就忘了复审,等到发现证书已经失效时,才慌了神。其实电子证书的…

2026/11/11 22:17:59

电工作业审批有效期多久?全国通用证书怎么考?

电工作业审批有效期多久?全国通用证书怎么考? 你是不是正愁没证,连面试机会都少?电工作业审批流程复杂,全国通用的证书到底怎么考?别急,这篇文章从河南公路工程从业者的实际需求出发,带你看清政策变化、报名材料、备考重点,帮你少走弯路,快速拿到手…

2026/11/11 22:17:59

电工证报考要多久多久拿证,外省证怎么转过来

电工证报考要多久多久拿证,外省证怎么转过来 之前考的证在外省能不能转过来?很多小伙伴都有这个疑问,特别是像你这样在洛阳涧西区的应届工程类毕业生,手里拿着外省的电工证,想着早点上岗,却发现证件跨省转移手续繁琐,拿证时间也成了心头大患。今天就来…

2026/11/11 22:17:59

承德高压电工证在哪办通过率揭秘:电工小白也能拿证上岗

承德高压电工证在哪办通过率揭秘:电工小白也能拿证上岗 你是不是正在找工作,却被要求必须有高压电工证?别急,今天就给你说清楚,承德高压电工证到底在哪办,通过率到底高不高,怎么准备才能一次过,还能不能在郑州金水区公路工程行业用得上。…

2026/11/11 22:12:56

炼化厂电工作业教学千万别踩坑!新手电工如何一步到位拿下证上岗

炼化厂电工作业教学千万别踩坑!新手电工如何一步到位拿下证上岗 急需特种作业证才能上岗找工作,这句话说的就是你。很多在信阳浉河区的建筑工人,尤其是打算转行或者想进炼化厂、化工厂、油库等高危行业的电工,往往因为对特种作业证不了解,走了弯路,甚至…

2026/11/11 12:42:59

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/11 0:02:26

考低压电工证通过率考试真题与备考技巧

低压电工证通过率高不高?学历不高也能考,值不值得考? 你是不是总听说电工证能帮你找高薪工作,但又担心自己学历不够,考不上?其实,低压电工证考试门槛并没有你想象中那么高,关键是方法对不对。这篇文章就告诉你, 考低压电工证通过率到底有多高 ,…

2026/11/11 0:02:26

低压电工证学时千万别踩坑,濮阳毕业生怎么避坑报名

低压电工证学时千万别踩坑,濮阳毕业生怎么避坑报名 你是不是也和我一样,刚毕业就听说低压电工证学时必须达标才能上岗?可一打听,发现报名机构五花八门,价格参差不齐, 不知道去哪报名怕被中介坑…

2026/11/11 20:27:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/10 10:29:37

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑