Question: Given a collection of distinct integers, return all possible permutations.
Example: Input: [1,2,3]
Desired output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
Aren't arrays passed by reference in JavaScript? Why is the result array empty when I return it?
/**
* @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]));