Why does this process work? Since permutations are arrangements of the input values, it makes sense that we could generate these arrangements by swapping. If we sent a reference, we would overwrite the result of previous swaps. This is how we generate new permutations. One implementation detail: When we make the recursive call, we need to send a copy of nums, not just a reference to nums. To keep the code simple, we also do the swap in this case, though it has no effect since we’re swapping an element with itself. As a special case, we also make the recursive call when i=j. If they’re different, we swap them and recursively start the process again at the next starting position i+1. For each j (the current position), we’ll check the values at nums and nums. The iteration loop on j goes from i (the starting position) to the end of the current permutation, nums. We’ll use a combination of iteration and recursion. If it is, the current permutation is done, so we can add it to our list of results, and return: if i is past the end of the current permutationĪdd the current permutation to the result
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |