rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;
use std::collections::HashSet;

impl Solution {
    fn split_array(nums: Vec<i32>) -> bool {
        let n = nums.len();
        let mut prefix = vec![0; n];
        let mut prev = 0;
        if n < 7 {
            return false;
        }
        for i in 0..n {
            prev += nums[i];
            prefix[i] = prev;
        }
        for j in 3..n - 3 {
            let mut hs: HashSet<i32> = HashSet::new();
            for i in 1..j - 1 {
                let a = prefix[i - 1];
                let b = prefix[j - 1] - prefix[i];
                if a == b {
                    hs.insert(a);
                }
            }
            for k in j + 1..n - 1 {
                let c = prefix[k - 1] - prefix[j];
                let d = prefix[n - 1] - prefix[k];
                if c == d {
                    if hs.contains(&c) {
                        return true;
                    }
                }
            }
        }
        false
    }
}

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