rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

impl Solution {
    fn subsets(nums: Vec<i32>) -> Vec<Vec<i32>> {
        let mut res: Vec<Vec<i32>> = vec![];
        let mut v: Vec<i32> = vec![];
        let n = nums.len();
        Self::dfs(0, &mut res, &nums, &mut v, n);
        res
    }

    fn dfs(i: usize, all: &mut Vec<Vec<i32>>, nums: &[i32], cur: &mut Vec<i32>, n: usize) {
        if i == n {
            all.push(cur.to_vec());
        } else {
            Self::dfs(i + 1, all, nums, cur, n);
            cur.push(nums[i]);
            Self::dfs(i + 1, all, nums, cur, n);
            cur.pop();
        }
    }
}

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