Skip to content

Commit 46ffe9d

Browse files
committed
feat: add rust solution to lcof problem: No.13
面试题13. 机器人的运动范围
1 parent a82310e commit 46ffe9d

File tree

1 file changed

+24
-0
lines changed
  • lcof/面试题13. 机器人的运动范围

1 file changed

+24
-0
lines changed

lcof/面试题13. 机器人的运动范围/README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,8 @@ function movingCount(m: number, n: number, k: number): number {
173173

174174
### **Rust**
175175

176+
循环:
177+
176178
```rust
177179
use std::collections::{HashSet, VecDeque};
178180

@@ -200,6 +202,28 @@ impl Solution {
200202
}
201203
```
202204

205+
递归:
206+
207+
```rust
208+
impl Solution {
209+
fn dfs(sign: &mut Vec<Vec<bool>>, k: usize, y: usize, x: usize) -> i32 {
210+
if y == sign.len()
211+
|| x == sign[0].len()
212+
|| sign[y][x]
213+
|| x % 10 + x / 10 % 10 + y % 10 + y / 10 % 10 > k
214+
{
215+
return 0;
216+
}
217+
sign[y][x] = true;
218+
1 + Solution::dfs(sign, k, y + 1, x) + Solution::dfs(sign, k, y, x + 1)
219+
}
220+
pub fn moving_count(m: i32, n: i32, k: i32) -> i32 {
221+
let mut sign = vec![vec![false; n as usize]; m as usize];
222+
Solution::dfs(&mut sign, k as usize, 0, 0)
223+
}
224+
}
225+
```
226+
203227
### **...**
204228

205229
```

0 commit comments

Comments
 (0)