47. 全排列 II-bfs/回溯-中等难度
Posted xxxxxiaochuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了47. 全排列 II-bfs/回溯-中等难度相关的知识,希望对你有一定的参考价值。
问题描述
给定一个可包含重复数字的序列,返回所有不重复的全排列。
示例:
输入: [1,1,2]
输出:
[
[1,1,2],
[1,2,1],
[2,1,1]
]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/permutations-ii
解答
class Solution { public void backtrack(int n, List<Integer> temp, List<List<Integer>> res, int first){ if(first == n)res.add(new ArrayList<Integer>(temp)); for(int i=first;i<n;i++){ Collections.swap(temp,i,first); if(!res.contains(temp))backtrack(n, temp, res, first+1); Collections.swap(temp,first,i); } } public List<List<Integer>> permuteUnique(int[] nums) { List<List<Integer>> res = new LinkedList<List<Integer>>(); List<Integer> temp = new ArrayList<Integer>(); for(int i:nums) temp.add(i); System.out.println(temp); backtrack(temp.size(), temp, res, 0); return res; } }
以上是关于47. 全排列 II-bfs/回溯-中等难度的主要内容,如果未能解决你的问题,请参考以下文章