Minimum Cost to Cut a Stick LeetCode solution in Rust
1impl Solution {2pub fn min_cost(n: i32, cuts: Vec<i32>) -> i32 {3let mut a = Vec::with_capacity(cuts.len() + 2);4a.push(0);5a.push(n);6a.extend(cuts);7a.sort_unstable();89let mut dp = vec![vec![0; a.len()]; a.len()];1011for len in 2..a.len() {12for i in 0..a.len() - len {13let j = i + len;1415let mut t = i32::MAX;16for k in i + 1..j {17t = t.min(dp[i][k] + dp[k][j]);18}19dp[i][j] = t + a[j] - a[i];20}21}2223dp[0][a.len() - 1]24}25}