尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

DeepSeek LeetCode 3803. 统计残差前缀 Rust实现

DeepSeek    LeetCode 3803. 统计残差前缀 Rust实现 根据您提供的方法签名您问的实际上是 LeetCode 第 3483 题“不同三位偶数的数目”而不是 3803 题。题目要求统计用给定数字能组成多少个不同的三位偶数每个数字在同一个数中只能用一次且百位不能为 0。解题思路最直接的方法就是三层循环暴力枚举所有可能的百位、十位、个位组合然后用哈希集合去重。· 枚举个位必须是偶数即 digit % 2 0。· 枚举十位从剩余数字中选不能和个位是同一个索引。· 枚举百位从剩余数字中选不能是 0且不能和个位、十位是同一个索引。· 去重与计数将符合条件的数字放入 HashSet最后返回其大小即为不同数字的个数。Rust 代码实现rustuse std::collections::HashSet;impl Solution {pub fn total_numbers(digits: Veci32) - i32 {let n digits.len();let mut seen HashSet::new();// 枚举个位 (k)for i in 0..n {if digits[i] % 2 ! 0 {continue;}// 枚举十位 (j)for j in 0..n {if j i {continue;}// 枚举百位 (k)for k in 0..n {if k i || k j || digits[k] 0 {continue;}// 组成三位数let num digits[k] * 100 digits[j] * 10 digits[i];seen.insert(num);}}}seen.len() as i32}}复杂度分析· 时间复杂度O(n³)。因为 digits 长度最多为 10三层循环最多执行 1000 次完全可以接受。· 空间复杂度O(m)其中 m 是生成的互不相同的三位偶数个数用于存储 HashSet。
返回列表