20250127 finished.
This commit is contained in:
parent
da88bff2dc
commit
9aefd4a30c
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,2 +1,3 @@
|
||||||
target/
|
target/
|
||||||
.idea/
|
.idea/
|
||||||
|
.DS_Store
|
||||||
|
|
|
@ -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]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user