Champagne Tower LeetCode solution in Rust

1
impl Solution {
2
pub fn champagne_tower(poured: i32, query_row: i32, query_glass: i32) -> f64 {
3
let mut dp = vec![vec![0.0; query_row as usize + 1]; query_row as usize + 1];
4
dp[0][0] = poured as f64;
5

6
for i in 1..dp.len() {
7
for j in 0..=i {
8
let l = *dp[i - 1].get(j - 1).unwrap_or(&0.0);
9
let r = dp[i - 1][j];
10
dp[i][j] = 0f64.max(l - 1.0) / 2.0 + 0f64.max(r - 1.0) / 2.0;
11
}
12
}
13
1f64.min(dp[query_row as usize][query_glass as usize])
14
}
15
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0