跳转至

回溯算法

本页统计信息
  • 本页约 96 个字, 21 行代码, 预计阅读时间 1 分钟。

  • 本页总阅读量

0046. 全排列

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

经典的回溯问题,用一个visit数组记录遍历的情况,然后用一个循环,从每一个num开始轮流遍历,这样就可以遍历所有的排列情况

class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        result = []
        def dfs(temp, visit, nums):
            n = len(nums)
            if len(temp) == n:
                result.append(temp.copy())
                return
            for i in range(n):
                if visit[i] == 0:
                    visit[i] = 1
                    temp.append(nums[i])
                    dfs(temp, visit, nums)
                    temp.pop(-1)
                    visit[i] = 0
                else:
                    continue

        visit = [0 for num in nums]
        dfs([], visit, nums)
        return result

颜色主题调整

评论区~

有用的话请给我个star或者follow我的账号!! 非常感谢!!
快来跟我聊天~