1. /*
    2. * @lc app=leetcode.cn id=46 lang=javascript
    3. *
    4. * [46] 全排列
    5. */
    6. const backtrack = (list, temp, nums) => {
    7. // 终止条件
    8. if (temp.length === nums.length) {
    9. list.push([...temp]);
    10. return
    11. }
    12. for (let i = 0; i < nums.length; i++) {
    13. if (temp.includes(nums[i])) {
    14. continue
    15. }
    16. /**
    17. * 放入一个
    18. * 执行递推公式
    19. * 弹出一个
    20. */
    21. temp.push(nums[i])
    22. backtrack(list, temp, nums)
    23. temp.pop()
    24. }
    25. }
    26. // @lc code=start
    27. /**
    28. * @param {number[]} nums
    29. * @return {number[][]}
    30. */
    31. var permute = function (nums) {
    32. const list = []
    33. backtrack(list, [], nums)
    34. return list
    35. };