leetcode第46题全排列

93 阅读1分钟

题目: 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。题目链接

我的JavaScript解法

/**
 * @param {number[]} nums
 * @return {number[][]}
 */
var permute = function(nums) {
  let result = [];
  trace(nums, [], result);
  return result;
};

var trace = (nums, track, result) => {
  if(track.length == nums.length) {
    result.push([...track]);
    return;
  }
  for (let i = 0; i < nums.length; i++) {
    if (track.includes(nums[i])) continue;
    track.push(nums[i]);
    trace(nums, track, result);
    track.pop();
  }
}

解析: 经典的回溯问题

  • 时间复杂度:O(n2)O(n^2)
  • 空间复杂度: