Skip to content

Commit 9f5274f

Browse files
committed
feat: add solution for permutations in rs
1 parent 7041a0e commit 9f5274f

File tree

1 file changed

+26
-1
lines changed

1 file changed

+26
-1
lines changed

src/medium/permutations.rs

+26-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,19 @@
11
#![allow(dead_code)]
22

33
pub fn permute(nums: Vec<i32>) -> Vec<Vec<i32>> {
4-
todo!("Implement it")
4+
if nums.len() == 1 {
5+
return vec![nums];
6+
}
7+
let mut result = vec![];
8+
for i in 0..nums.len() {
9+
let mut nums_clone = nums.clone();
10+
let num = nums_clone.remove(i);
11+
for mut perm in permute(nums_clone) {
12+
perm.insert(0, num);
13+
result.push(perm);
14+
}
15+
}
16+
result
517
}
618

719
#[cfg(test)]
@@ -27,4 +39,17 @@ mod tests {
2739
]
2840
));
2941
}
42+
43+
#[test]
44+
fn test_permutations_2() {
45+
assert!(validate_permutations(
46+
permute(vec![0, 1]),
47+
vec![vec![0, 1], vec![1, 0]]
48+
));
49+
}
50+
51+
#[test]
52+
fn test_permutations_3() {
53+
assert!(validate_permutations(permute(vec![1]), vec![vec![1]]));
54+
}
3055
}

0 commit comments

Comments
 (0)