- 首页 > it技术 > >
JavaScript|JavaScript - 全排列2(回溯法)
给定一个可包含重复数字的序列,返回所有不重复的全排列。
示例:
输入: [1,1,2]
输出:
[
[1,1,2],
[1,2,1],
[2,1,1]
]
【JavaScript|JavaScript - 全排列2(回溯法)】完整代码:
/**
* @param {number[]} nums
* @return {number[][]}
*/
var permuteUnique = function(nums) {
let arr = nums.sort((m, n)=> m - n);
let res = [];
function def(n, path) {
for (let i = 0;
i < n.length;
i++) {
let curPath = [...path, n[i]];
let copy = [...n];
copy.splice(i, 1);
if (i > 0 && n[i - 1] === n[i]) continue;
if (curPath.length === arr.length) res.push(curPath);
if (copy.length > 0) def(copy, curPath);
}
}def(arr, []);
return res;
};
推荐阅读