46. Permutations
Given a collection of distinct numbers, return all possible permutations.
For example,[1,2,3]
have the following permutations:
[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]
题目含义:求给定向量数组所有元素的全排列问题。
class Solution { private List<List<Integer>> result = new ArrayList<>(); public List<List<Integer>> permute(int[] nums) { recurFullArray(nums, 0); return result; } private void recurFullArray(int[] nums, int startPosition) { if (startPosition == nums.length) { List<Integer> temp = new ArrayList<>(); for (int i = 0; i < nums.length; i++) temp.add(nums[i]); result.add(temp); return; } for (int i = startPosition; i < nums.length; i++) { swapValue(nums, startPosition, i); recurFullArray(nums, startPosition + 1); swapValue(nums, startPosition, i); } } private void swapValue(int[] array, int left, int right) { int temp = array[left]; array[left] = array[right]; array[right] = temp; } }
类似题目:字符串的全排列
https://blog.csdn.net/qq_41056506/article/details/82659524