编写一个函数,该函数接受一个整数数组,并返回原始数组的所有可能的唯一排列的数组。例如,给定数组[1,2,3],函数应该返回以下数组的数组:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]使用js
时间: 2023-09-28 10:08:42 浏览: 54
function permute(nums) {
let result = [];
function backtrack(start) {
if (start === nums.length - 1) {
result.push([...nums]); // 保存一种排列
return;
}
for (let i = start; i < nums.length; i++) {
// 交换元素
[nums[start], nums[i]] = [nums[i], nums[start]];
// 递归处理后面的元素
backtrack(start + 1);
// 恢复数组状态
[nums[start], nums[i]] = [nums[i], nums[start]];
}
}
backtrack(0);
return result;
}
// 测试
console.log(permute([1,2,3])); // [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,2,1],[3,1,2]]
相关问题
编写一个函数,该函数接受一个整数数组,并返回原始数组的所有可能的唯一排列的数组。例如,给定数组[1,2,3],函数应该返回以下数组的数组:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
以下是Python的实现:
```python
import itertools
def permute(nums):
return list(itertools.permutations(nums))
```
使用itertools.permutations()函数可以轻松地生成所有可能的排列。
js编写一个函数,该函数接受一个整数数组,并返回原始数组的所有可能的唯一排列的数组。例如,给定数组[1,2,3],函数应该返回以下数组的数组:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
function permutation(arr) {
let result = [];
const backtrack = (list, temp) => {
if (temp.length === arr.length) {
result.push([...temp]);
} else {
for (let i = 0; i < list.length; i++) {
const item = list[i];
temp.push(item);
const newList = list.filter((val) => val !== item);
backtrack(newList, temp);
temp.pop();
}
}
};
backtrack(arr, []);
return result;
}
// example usage
const arr = [1, 2, 3];
const permutations = permutation(arr);
console.log(permutations); // [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)