当前位置: 首页 > news >正文

DeepSeek LeetCode 3855. 给定范围内 K 位数字之和 Rust实现

解题思路

核心在于逐位独立计算贡献:每个数位上的数字都独立地从 [l, r] 中选取。

· 总数字个数:共有 n = r - l + 1 个可选数字,因此 k 位数字的总数为 n^k。
· 单个数位贡献:固定一个数位,其余 k-1 位可任意选择,共有 n^(k-1) 种组合。该数位上所有数字之和为 (l+r) * n / 2。
· 数位权值总和:所有 k 个数位的权值(1, 10, ..., 10^(k-1))之和,即等比数列和 (10^k - 1) / 9。

最终公式为:
答案 = (数位和) × n^(k-1) × (1 + 10 + ... + 10^(k-1))

其中,数位和 = (l + r) * n / 2。

---

Rust 实现

```rust
const MOD: i64 = 1_000_000_007;

impl Solution {
pub fn sum_of_numbers(l: i32, r: i32, k: i32) -> i32 {
let l = l as i64;
let r = r as i64;
let k = k as i64;

let n = r - l + 1; // 可选数字个数
let digit_sum = (l + r) * n / 2; // 单个数位上的数字和

// term1 = digit_sum * n^(k-1) % MOD
let term1 = (digit_sum % MOD) * Self::mod_pow(n, k - 1) % MOD;

// term2 = (10^k - 1) / 9 % MOD,使用费马小定理计算 9 的逆元
let pow10 = Self::mod_pow(10, k);
let inv9 = Self::mod_pow(9, MOD - 2);
let term2 = (pow10 - 1 + MOD) % MOD * inv9 % MOD;

((term1 * term2) % MOD) as i32
}

// 快速幂:计算 a^b % MOD
fn mod_pow(mut a: i64, mut b: i64) -> i64 {
let mut result = 1;
a %= MOD;
while b > 0 {
if b & 1 == 1 {
result = (result * a) % MOD;
}
a = (a * a) % MOD;
b >>= 1;
}
result
}
}
```

复杂度分析

· 时间复杂度:O(log k),主要来自快速幂运算(mod_pow)。
· 空间复杂度:O(1)。

http://www.cnnetsun.cn/news/3943715.html

相关文章:

  • 北滘网站建设公司哪家强?揭秘2024年本土企业官网搭建避坑指南与真实案例解析
  • Cloudflare Kitesurf:边缘计算中的轻量级浏览器自动化新方案
  • OpenAI Astra网络能力升级下的智能体安全开发实战指南
  • Cesium与虚幻引擎蓝图UI集成实战:地理可视化交互开发指南
  • Windows C++网络编程:Boost.Asio从环境配置到TCP/UDP实战
  • Java多线程同步:synchronized原理与最佳实践
  • 408计算机组成原理:微程序控制器——概念串联记忆版
  • Python招聘大数据分析系统:从爬虫到可视化全流程解析
  • 揭秘2024年网站建设哪家好xm37真相:老板必看避坑指南与实战建议
  • 显卡驱动彻底清理终极指南:Display Driver Uninstaller 完全解决方案
  • Python类型提示详解:从基础到高级应用
  • 程序员段子背后的实战智慧:从经典梗到云原生避坑指南
  • 从拼错一个单词到命中正确业务数据,深入理解 SAP HANA 与 ABAP CDS 的 Fuzzy Search
  • SpringBoot+MySQL实现大学图书借阅管理系统
  • 如何快速构建现代化WinForm应用:SunnyUI终极控件库完全指南
  • NCM格式解密实战:突破网易云音乐限制的完全攻略
  • C语言高级语法:内存管理与数据结构实战
  • 深入解析吉林市建设局网站功能与民生服务价值,市民必看的权威资讯平台指南
  • 容度原理终极推演:月球上的“反物质矿藏”及其千万亿美元级价值
  • SQL视图创建与优化实战指南
  • Redis高性能背后的线程模型解析
  • 企业级数据中心升级:核心模块与优化策略
  • 农化行业业财一体化数字化转型实践与解决方案
  • UE5 Niagara碰撞系统迁移指南:从参数映射到性能优化
  • 中国矿山建设网站:深耕行业十余年,我们如何重新定义矿山工程服务的信任与价值
  • 麒麟信安操作系统与工控安全方案的技术突破与应用
  • 洛本兔子艺术IP:萌趣造型与社会观察的完美结合
  • Spring AI Alibaba实战:构建Human-in-the-Loop人机协同系统
  • BetterGenshinImpact终极指南:解放双手,告别重复劳动
  • Office安装神器,流批了