rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

impl Solution {
    fn find_duplicate(nums: Vec<i32>) -> i32 {
        let n = (nums.len() - 1) as i32;
        let mut low = 1;
        let mut high = n;
        while low < high {
            let mid = low + (high - low) / 2;
            let mut count = 0;
            for &x in &nums {
                if x <= mid {
                    count += 1;
                }
            }
            if count <= mid {
                low = mid + 1;
            } else {
                high = mid;
            }
        }
        low
    }
}

#[test]
fn test() {
    let nums = vec![1, 3, 4, 2, 2];
    let res = 2;
    assert_eq!(Solution::find_duplicate(nums), res);
    let nums = vec![3, 1, 3, 4, 2];
    let res = 3;
    assert_eq!(Solution::find_duplicate(nums), res);
}