Skip to content

Commit 62fac6c

Browse files
authored
Update Solution.rs
1 parent 486052e commit 62fac6c

File tree

1 file changed

+14
-4
lines changed
  • solution/0700-0799/0746.Min Cost Climbing Stairs

1 file changed

+14
-4
lines changed
Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
impl Solution {
22
pub fn min_cost_climbing_stairs(cost: Vec<i32>) -> i32 {
33
let n = cost.len();
4-
let mut f = vec![0; n + 1];
5-
for i in 2..=n {
6-
f[i] = std::cmp::min(f[i - 2] + cost[i - 2], f[i - 1] + cost[i - 1]);
4+
let mut f = vec![-1; n];
5+
6+
fn dfs(i: usize, cost: &Vec<i32>, f: &mut Vec<i32>, n: usize) -> i32 {
7+
if i >= n {
8+
return 0;
9+
}
10+
if f[i] < 0 {
11+
let next1 = dfs(i + 1, cost, f, n);
12+
let next2 = dfs(i + 2, cost, f, n);
13+
f[i] = cost[i] + next1.min(next2);
14+
}
15+
f[i]
716
}
8-
f[n]
17+
18+
dfs(0, &cost, &mut f, n).min(dfs(1, &cost, &mut f, n))
919
}
1020
}

0 commit comments

Comments
 (0)