JavaScript 一行代码实现数组全排列 - 算法优化
"使用递归来实现数组的全排列。以下是一行代码实现数组全排列的方法:\n\njavascript\nconst permute = (arr) => arr.length === 1 ? [arr] : arr.flatMap((val, i) => permute([...arr.slice(0, i), ...arr.slice(i + 1)]).map((perm) => [val, ...perm]));\n\n\n使用例子:\n\njavascript\nconsole.log(permute([1, 2, 3]));\n\n\n输出结果:\n\njavascript\n[\n [ 1, 2, 3 ],\n [ 1, 3, 2 ],\n [ 2, 1, 3 ],\n [ 2, 3, 1 ],\n [ 3, 1, 2 ],\n [ 3, 2, 1 ]\n]\n\n\n这段代码利用了 Array.prototype.flatMap() 方法和递归的思想,将数组的每个元素依次作为起始元素,求剩下元素的全排列,然后将起始元素与全排列结果组合起来,最终得到数组的全排列。\
原文地址: https://www.cveoy.top/t/topic/pEau 著作权归作者所有。请勿转载和采集!