We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 7041a0e commit 9f5274fCopy full SHA for 9f5274f
src/medium/permutations.rs
@@ -1,7 +1,19 @@
1
#![allow(dead_code)]
2
3
pub fn permute(nums: Vec<i32>) -> Vec<Vec<i32>> {
4
- todo!("Implement it")
+ 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
17
}
18
19
#[cfg(test)]
@@ -27,4 +39,17 @@ mod tests {
27
39
]
28
40
));
29
41
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
52
+ fn test_permutations_3() {
53
+ assert!(validate_permutations(permute(vec![1]), vec![vec![1]]));
54
30
55
0 commit comments