zoukankan      html  css  js  c++  java
  • LeetCode 46. 全排列

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

    示例:

    输入: [1,2,3]
    输出:
    [
    [1,2,3],
    [1,3,2],
    [2,1,3],
    [2,3,1],
    [3,1,2],
    [3,2,1]
    ]

    class Solution:
        def permute(self, nums: List[int]) -> List[List[int]]:
            if len(nums) <= 1:  # 递归终止条件
                return [nums]
            res = []
            for idx, num in enumerate(nums):
                res_nums = nums[:idx] + nums[idx + 1:]  # 确定剩余元素
                for j in self.permute(res_nums):  
                    res.append([num] + j)
            return res
    
    class Solution:
        def permute(self, nums: List[int]) -> List[List[int]]:
            ans = []
            cur = []
            visit = set()
            self.permute_solver(nums, ans, cur, visit)
            return ans 
    
        def permute_solver(self,nums,ans,cur,visit):
            if len(cur)==len(nums):
                ans.append(cur[:])
                return
            for i in range(len(nums)):
                if nums[i] in visit:
                    continue
                cur.append(nums[i])
                visit.add(nums[i])
                self.permute_solver(nums,ans,cur,visit)
                num = cur.pop()
                visit.remove(num)
            return 
    
        def permute(self, nums):
            def backtrack(first = 0):
                print(nums)
                # 所有数都填完了
                if first == n:  
                    res.append(nums[:])
                for i in range(first, n):
                    # 动态维护数组
                    nums[first], nums[i] = nums[i], nums[first]
                    # 继续递归填下一个数
                    backtrack(first + 1)
                    # 撤销操作
                    nums[first], nums[i] = nums[i], nums[first]
            
            n = len(nums)
            res = []
            backtrack()
            return res
    
  • 相关阅读:
    一款jquery写出来的tab切换
    mouseenter 事件,固定右侧客服特效
    一款兼容pc 移动端的tab切换
    EhCache缓存
    HTML5中与页面显示相关的API
    JAVA获取客户端IP地址
    Oracle11g导出空表
    css兼容问题集合
    使用Java修改Windows注册表
    常用的SQL分页
  • 原文地址:https://www.cnblogs.com/sandy-t/p/13285404.html
Copyright © 2011-2022 走看看