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));

相关推荐
两万五千个小时几秒前
从零给 DSH 写一个 Webhook 通知插件
javascript·人工智能·架构
可乐鸡翅yeah_1 分钟前
HLS 业务 Referer‑Policy 网页元标签引发播放异常排错
前端·javascript·网络·ffmpeg·php·音视频
进击的大海贼1 分钟前
基于C#开发的久坐提醒工具
开发语言·c#
夏幻灵4 分钟前
每日一题:LeetCode 1:两数之和——从暴力枚举到 Map 哈希表优化
算法·leetcode·散列表
vipxieliang5 分钟前
深入理解 JavaScript 数据类型与类型转换
前端·javascript
平生幻5 分钟前
unbuntu虚拟机确认python安装位置
开发语言·python
真夜8 分钟前
# Vue2 树形虚拟滚动组件实战:从原型踩坑到无缝替换 el-tree
javascript
段一凡-华北理工大学13 分钟前
高炉炼铁机器视觉与智能识别十八讲~系列文章09:AI 算法基础:从传统图像处理到深度学习的视觉“大脑“
图像处理·人工智能·算法·机器视觉·工业智能化·高炉炼铁智能化·高炉智能识别
运维行者_17 分钟前
PHP性能监控怎么做?从响应时间到慢函数的6个关键指标
运维·服务器·开发语言·网络·支持向量机·php·接口隔离原则
alphaTao20 分钟前
LeetCode 每日一题 2026/9/28-2026/10/4
算法·leetcode