20250127 finished.

This commit is contained in:
jackfiled 2025-01-27 11:24:17 +08:00
parent da88bff2dc
commit 9aefd4a30c
2 changed files with 12 additions and 13 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
target/ target/
.idea/ .idea/
.DS_Store

View File

@ -7,24 +7,21 @@ pub struct Solution {}
impl Solution { impl Solution {
pub fn jump(nums: Vec<i32>) -> i32 { pub fn jump(nums: Vec<i32>) -> i32 {
let mut dp = vec![i32::MAX; nums.len()]; let mut result = 0;
dp[0] = 0; let mut max_position = 0;
let mut current_position = 0;
for i in 0..nums.len() { // 注意这里不能遍历到数组最后
if dp[i] == i32::MAX { for i in 0..nums.len() - 1 {
continue; max_position = max_position.max(i as i32 + nums[i]);
}
for j in 1..=nums[i] as usize { if i as i32 == current_position {
if i + j >= nums.len() { current_position = max_position;
break; result += 1;
}
dp[i + j] = dp[i + j].min(dp[i] + 1);
} }
} }
dp[nums.len() - 1] result
} }
} }
@ -37,5 +34,6 @@ mod tests {
#[test] #[test]
fn test_45() { fn test_45() {
assert_eq!(2, Solution::jump(vec![2, 3, 1, 1, 4])); assert_eq!(2, Solution::jump(vec![2, 3, 1, 1, 4]));
assert_eq!(2, Solution::jump(vec![2, 3, 0, 1, 4]));
} }
} }