rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

impl Solution {
    fn distance(a: i32, b: i32) -> i32 {
        (a - b).abs()
    }
    fn find_radius(mut houses: Vec<i32>, mut heaters: Vec<i32>) -> i32 {
        houses.sort_unstable();
        heaters.sort_unstable();
        let mut i = 0;
        let mut j = 0;
        let n = houses.len();
        let m = heaters.len();
        let mut max = 0;
        while i < n {
            while j + 1 < m
                && Self::distance(heaters[j + 1], houses[i])
                    <= Self::distance(heaters[j], houses[i])
            {
                j += 1;
            }
            max = i32::max(Self::distance(houses[i], heaters[j]), max);
            i += 1;
        }
        max
    }
}

#[test]
fn test() {
    let houses = vec![1, 2, 3];
    let heaters = vec![2];
    assert_eq!(Solution::find_radius(houses, heaters), 1);
    let houses = vec![1, 2, 3, 4];
    let heaters = vec![1, 4];
    assert_eq!(Solution::find_radius(houses, heaters), 1);
}