给定一个 没有重复 数字的序列,返回其所有可能的全排列。

    1. /**
    2. * 回溯 + 剪枝
    3. * 时间复杂度:O(n×n!)
    4. * 空间复杂度:O(n)
    5. */
    6. var permute = function (nums) {
    7. const res = []
    8. function dps(temp) {
    9. if (temp.length === nums.length) {
    10. res.push([...temp])
    11. return
    12. }
    13. for (let i = 0; i < nums.length; i++) {
    14. if (temp.includes(nums[i])) continue
    15. temp.push(nums[i])
    16. dps(temp)
    17. temp.pop()
    18. }
    19. }
    20. dps([])
    21. return res
    22. }