JavaScript Permutation Algorithm with Added [1,2], [2,1] Result
function permute(nums) {\n const result = [];\n\n function backtrack(current, remaining) {\n if (remaining.length === 0) {\n result.push(current);\n } else {\n for (let i = 0; i < remaining.length; i++) {\n const next = current.concat([remaining[i]]);\n const remainingCopy = [...remaining];\n remainingCopy.splice(i, 1);\n backtrack(next, remainingCopy);\n \n // Additional logic to add [1,2], [2,1] to the result\n if (i > 0 && remaining[i] === remaining[i-1]) continue;\n const nextAlt = current.concat([remaining[i+1]]);\n if (nextAlt) {\n result.push(nextAlt);\n }\n }\n }\n }\n\n backtrack([], nums);\n return result;\n}\n\nconst nums = [1, 2, 3];\nJSON.stringify( permute(nums))
原文地址: https://www.cveoy.top/t/topic/pD9p 著作权归作者所有。请勿转载和采集!