rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

impl Solution {
    fn median_sliding_window(nums: Vec<i32>, k: i32) -> Vec<f64> {
        let k = k as usize;
        let n = nums.len();
        let mut w = vec![];
        for i in 0..k {
            w.push(nums[i]);
        }
        w.sort_unstable();
        let mut res = vec![];
        res.push(Self::median(&w, k));
        for i in k..n {
            let pos = w.binary_search(&nums[i - k]).unwrap_or_else(|e| e);
            w.remove(pos);
            let pos = w.binary_search(&nums[i]).unwrap_or_else(|e| e);
            w.insert(pos, nums[i]);
            res.push(Self::median(&w, k));
        }
        res
    }

    fn median(v: &[i32], k: usize) -> f64 {
        (v[(k - 1) / 2] as f64 + v[k / 2] as f64) / 2.0
    }
}

#[test]
fn test() {
    let nums = vec![1, 3, -1, -3, 5, 3, 6, 7];
    let k = 3;
    let res = vec![1.0, -1.0, -1.0, 3.0, 5.0, 6.0];
    assert_eq!(Solution::median_sliding_window(nums, k), res);
}