rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

impl Solution {
    fn remove_interval(intervals: Vec<Vec<i32>>, to_be_removed: Vec<i32>) -> Vec<Vec<i32>> {
        let l = to_be_removed[0];
        let r = to_be_removed[1];
        let mut res = vec![];
        for interval in intervals {
            if interval[1] < l || interval[0] > r {
                res.push(interval);
            } else {
                if interval[0] < l {
                    res.push(vec![interval[0], l.min(interval[1])]);
                }
                if interval[1] > r {
                    res.push(vec![r.max(interval[0]), interval[1]]);
                }
            }
        }
        res
    }
}

#[test]
fn test() {
    let intervals = vec_vec_i32![[0, 2], [3, 4], [5, 7]];
    let to_be_removed = vec![1, 6];
    let res = vec_vec_i32![[0, 1], [6, 7]];
    assert_eq!(Solution::remove_interval(intervals, to_be_removed), res);
    let intervals = vec_vec_i32![[0, 5]];
    let to_be_removed = vec![2, 3];
    let res = vec_vec_i32![[0, 2], [3, 5]];
    assert_eq!(Solution::remove_interval(intervals, to_be_removed), res);
}