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