diff --git a/csharp/46-Permutations.cs b/csharp/46-Permutations.cs new file mode 100644 index 000000000..a885f91c2 --- /dev/null +++ b/csharp/46-Permutations.cs @@ -0,0 +1,26 @@ +public class Solution +{ + public IList> Permute(int[] nums) + { + var result = new List>(); + PermuteRecurse(result, nums, 0); + return result; + } + + private void PermuteRecurse(List> res, int[] arr, int start) + { + if (start == arr.Length) + { + var list = arr.Select(t => (t)).ToList(); + res.Add(list); + return; + } + + for (var i = start; i < arr.Length; i++) + { + (arr[start], arr[i]) = (arr[i], arr[start]); + PermuteRecurse(res, arr, start + 1); + (arr[start], arr[i]) = (arr[i], arr[start]); + } + } +} \ No newline at end of file