问题:给定一组不同的整数,请返回所有可能的排列。
示例:输入:[1,2,3]
所需的输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] >
不是在JavaScript中通过引用传递数组吗?为什么返回结果数组为空?
/**
* @param {number[]} nums
* @return {number[][]}
*/
var permute = function(nums) {
var result = [];
helper(nums, result, []);
return result;
};
var helper = function(nums, result, cur) {
if (cur.length == nums.length) {
result.push(cur);
} else {
for (let i = 0; i < nums.length; i++) {
cur.push(nums[i]);
helper(nums, result, cur);
cur.pop();
}
}
}
console.log(permute([1, 2, 3]));
问题:给定一组不同的整数,请返回所有可能的排列。示例:输入:[1,2,3]所需的输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3, 1,2],[3,2,1]]未通过数组...
您仅在调用cur
时才创建单个helper
数组:
不,JavaScript中的所有内容都是按值传递的。在函数helper
中,将创建一个局部变量result
,然后在helper
调用时为其分配自变量的值。您最可能想做的是:result = helper(nums, result, []);
。