Kimi LeetCode 63. 不同路径 II Rust实现

发布时间:2026/9/12 20:00:18
Kimi    LeetCode 63. 不同路径 II Rust实现 LeetCode 63. 不同路径 II — Rust 实现解法一一维 DP推荐dp[j]表示当前行第j列的路径数与 Python 解法二思路相同implSolution{pubfnunique_paths_with_obstacles(obstacle_grid:VecVeci32)-i32{letnobstacle_grid[0].len();letmutdpvec![0i64;n];dp[0]1;forrowinobstacle_grid{forjin0..n{ifrow[j]1{dp[j]0;}elseifj0{dp[j]dp[j-1];}}}dp[n-1]asi32}}解法二原地 DPO(1) 额外空间直接复用输入数组把每个格子原地改写为到达它的路径数implSolution{pubfnunique_paths_with_obstacles(mutobstacle_grid:VecVeci32)-i32{letmobstacle_grid.len();letnobstacle_grid[0].len();ifobstacle_grid[0][0]1{return0;}obstacle_grid[0][0]1;// 初始化第一列障碍之前为 1之后全为 0foriin1..m{obstacle_grid[i][0](obstacle_grid[i][0]0obstacle_grid[i-1][0]1)asi32;}// 初始化第一行forjin1..n{obstacle_grid[0][j](obstacle_grid[0][j]0obstacle_grid[0][j-1]1)asi32;}foriin1..m{forjin1..n{obstacle_grid[i][j]ifobstacle_grid[i][j]1{0}else{obstacle_grid[i-1][j]obstacle_grid[i][j-1]};}}obstacle_grid[m-1][n-1]}}说明类型选择解法一中dp用i64更稳妥题目数据范围内i32也够用m、n ≤ 100 时最大路径数约 2.3×10⁵⁸ 其实超出 i64……实际 LeetCode 63 官方约束答案在 i32 范围内评测用i64再as i32是常见的安全折中若想严格处理大数可用u128或num-bigint但不必要。注意点Rust 中bool as i32可直接得到 0/1解法二借此简化初始化。起点有障碍时直接返回 0。每行第一个格子j 0只依赖上一行的值天然继承无需特判。复杂度两种解法时间均为 O(m×n)解法一空间 O(n)解法二空间 O(1)。推荐解法一简洁不易出错。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询