题解 | #没有重复项数字的全排列#

没有重复项数字的全排列

http://www.nowcoder.com/practice/4bcf3081067a4d028f95acee3ddcd2b1

Python 回溯写法

# 伪代码:
def 回溯函数():
	if (满足条件):
      保存结果(patch[:]在此处为拷贝引用,否则输出会为空)
    
    for i in (列表选择):
      选取操作,记录该选择
      回溯()
      撤销操作

完整代码:

class Solution:
    def permute(self , num: List[int]) -> List[List[int]]:
        # write code here
        res = []
        path = []
        n = len(num)
        def backTracking(array, n):
            if len(path) == n:
                res.append(path[:])
                return
            for idx, digit in enumerate(array):
                path.append(digit)
                del array[idx]
                backTracking(array, n)
                array.insert(idx, digit)
                path.pop()
        
        backTracking(num, n)
        
        return res
全部评论

相关推荐

专心打鱼:互联网搬运工,贴子都要偷
点赞 评论 收藏
分享
评论
8
4
分享
牛客网
牛客企业服务