Leetcode-046-full permutation

Lion, tiger and leopard 2021-10-14 05:47:07

Full Permutation

Title Description : Give an array without duplicate numbers nums , Back to its All possible permutations . You can In any order Return to the answer .

Please refer to LeetCode Official website .

source : Power button (LeetCode)
link :https://leetcode-cn.com/probl...
Copyright belongs to the network . For commercial reprint, please contact the official authority , Non-commercial reprint please indicate the source .

Solution 1 : brute-force attack
With a queue temp Record the results of temporary storage , One result is taken from the queue each time , Then go to list Add a nums The elements in , To judge whether the element to be added already exists , If there is , Is repeated , Don't add ; If it doesn't exist , Is added to the queue as one of the possible results . Until all list The number of elements in is nums.length, Return all results .
import java.util.*;
public class LeetCode_046 {
public static List<List<Integer>> permute(int[] nums) {
List<List<Integer>> result = new ArrayList<>();
int count = 0;
List<Integer> list = new ArrayList<>();
Queue<List<Integer>> temp = new LinkedList<>();
temp.add(list);
while (count < nums.length) {
int times = temp.size();
while (times > 0) {
List<Integer> cur = temp.poll();
for (int num : nums) {
List<Integer> next = new ArrayList<Integer>(Arrays.asList(new Integer[cur.size()]));
Collections.copy(next, cur);
if (!next.contains(num)) {
next.add(num);
temp.add(next);
}
}
times--;
}
count++;
}
result.addAll(temp);
return result;
}
public static void main(String[] args) {
int[] nums = new int[]{1, 2};
for (List<Integer> integers : permute(nums)) {
for (Integer integer : integers) {
System.out.print(integer + " ");
}
System.out.println();
}
}
}
【 Daily message 】 When you wake up every day, put a smile on your skirt and you will meet more beautiful people .
Please bring the original link to reprint ,thank
Similar articles

2021-10-14

2021-10-14

2021-10-14

2021-10-14

2021-10-14

2021-10-14

2021-10-14