前言:
如今兄弟们对“递归实现数组全排列”都比较着重,小伙伴们都想要知道一些“递归实现数组全排列”的相关内容。那么小编在网络上搜集了一些关于“递归实现数组全排列””的相关知识,希望小伙伴们能喜欢,姐妹们快快来学习一下吧!编辑切换为居中
添加图片注释,不超过 140 字(可选)
使用递归。对于给定数组中的每个元素,为其其余元素创建所有部分排列。使用Array.prototype.map()方法将元素与每个部分排列组合,然后使用Array.prototype.reduce()方法将所有排列组合到一个数组中。使Array.prototype.length等于2或1。⚠️警告:这个函数的执行时间随着每个数组元素呈指数增长。任何超过 8 到 10 个条目都可能导致您的浏览器在尝试解决所有不同组合时挂起。
JavaScript
const permutations = arr => { if (arr.length <= 2) return arr.length === 2 ? [arr, [arr[1], arr[0]]] : arr; return arr.reduce( (acc, item, i) => acc.concat( permutations([...arr.slice(0, i), ...arr.slice(i + 1)]).map(val => [ item, ...val, ]) ), [] );};
更多内容请访问我的网站:
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #递归实现数组全排列