js全排列组合算法(基于递归回溯)

function permute(nums) {

let result = \[\]; // 存放结果的数组

function backtracking(tempList, nums) {

if (nums.length === 0) {

result.push(...tempList); // 将当前路径添加到结果数组中

return;

}

for (let i = 0; i < nums.length; i++) {

tempList.push(numsi); // 选取当前元素并添加到临时列表中

const remainingNums = ...nums; // 复制原始数组作为新的子集

remainingNums.splice(i, 1); // 移除已经处理过的元素

backtracking(tempList, remainingNums); // 进入下一层递归

tempList.pop(); // 回溯,从临时列表中删除最后一个元素

}

}

backtracking(\[\], nums); // 调用递归函数开始计算所有排列组合

return result;

}

// 示例输入

const inputArray = 1, 2, 3;

console.log(permute(inputArray));

相关推荐
万少7 小时前
万少的博客 - 技术分享与解决方案
前端·javascript·后端
尘世中一位迷途小书童9 小时前
用 Cesium 撸了一个森林火情监控大屏,弧线、粒子、发光效果都齐了
前端·javascript
HjhIron10 小时前
面试常客:字符串算法从入门到进阶
算法·面试
先吃饱再说10 小时前
JavaScript中`this` 的“千层套路”:从默认绑定到箭头函数的五种指向
javascript
foxire11 小时前
基于nodejs实现服务端内核引擎
javascript
吴佳浩12 小时前
DeepSeek DSpark:Confidence-Scheduled Speculative Decoding 技术解析
人工智能·算法·deepseek
触底反弹13 小时前
🧠 搞懂 Token,才算真正入门大模型——从分词原理到 Embedding 语义实战
javascript·人工智能·算法
free3513 小时前
AST Interpreter 的设计:为什么分 evaluate() 和 execute()
javascript
等咸鱼的狸猫14 小时前
JavaScript 隐式类型转换:从入门到精通
javascript
kyriewen16 小时前
我用 Codex 重写了同事维护三年的代码,他没说谢谢——而是找了领导
前端·javascript·ai编程