rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

impl Solution {
    fn min_cost(costs: Vec<Vec<i32>>) -> i32 {
        let n = costs.len();
        if n == 0 {
            return 0;
        }
        let mut r = costs[0][0];
        let mut g = costs[0][1];
        let mut b = costs[0][2];
        for i in 1..n {
            let rr = i32::min(g, b) + costs[i][0];
            let gg = i32::min(r, b) + costs[i][1];
            let bb = i32::min(r, g) + costs[i][2];
            r = rr;
            g = gg;
            b = bb;
        }
        let mut res: Vec<i32> = [r, g, b].to_vec();
        res.sort_unstable();
        res[0]
    }
}

#[test]
fn test() {
    let costs: Vec<Vec<i32>> = vec_vec_i32![[17, 2, 17], [16, 16, 5], [14, 3, 19]];
    assert_eq!(Solution::min_cost(costs), 10);
}