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; };

    推荐阅读