mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 08:50:15 +08:00
Merge pull request #2120 from fwqaaq/patch-34
Update 0213.打家劫舍II.md about rust
This commit is contained in:
@ -301,6 +301,35 @@ function robRange(nums: number[], start: number, end: number): number {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Rust:
|
||||||
|
|
||||||
|
```rust
|
||||||
|
impl Solution {
|
||||||
|
pub fn rob(nums: Vec<i32>) -> i32 {
|
||||||
|
match nums.len() {
|
||||||
|
1 => nums[0],
|
||||||
|
_ => Self::rob_range(&nums, 0, nums.len() - 2).max(Self::rob_range(
|
||||||
|
&nums,
|
||||||
|
1,
|
||||||
|
nums.len() - 1,
|
||||||
|
)),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn rob_range(nums: &Vec<i32>, start: usize, end: usize) -> i32 {
|
||||||
|
if start == end {
|
||||||
|
return nums[start];
|
||||||
|
}
|
||||||
|
let mut dp = vec![0; nums.len()];
|
||||||
|
dp[start] = nums[start];
|
||||||
|
dp[start + 1] = nums[start].max(nums[start + 1]);
|
||||||
|
for i in start + 2..=end {
|
||||||
|
dp[i] = dp[i - 1].max(dp[i - 2] + nums[i]);
|
||||||
|
}
|
||||||
|
dp[end]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
|
Reference in New Issue
Block a user