rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

use std::mem::swap;

impl Solution {
    fn min_knight_moves(mut x: i32, mut y: i32) -> i32 {
        x = x.abs();
        y = y.abs();
        if x < y {
            swap(&mut x, &mut y);
        }
        if x == 1 && y == 0 {
            return 3;
        }
        if x == 2 && y == 2 {
            return 4;
        }
        let delta = x - y;
        if y > delta {
            delta - 2 * ((delta - y) as f64 / 3.0).floor() as i32
        } else {
            delta - 2 * ((delta - y) as f64 / 4.0).floor() as i32
        }
    }
}

#[test]
fn test() {
    let x = 2;
    let y = 1;
    assert_eq!(Solution::min_knight_moves(x, y), 1);
    let x = 5;
    let y = 5;
    assert_eq!(Solution::min_knight_moves(x, y), 4);
}