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

没有重复项数字的全排列

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
全部评论

相关推荐

05-20 13:59
门头沟学院 Java
米黑子米黑子:你这个成绩不争取下保研?
点赞 评论 收藏
分享
龙珠传说:nb,公务员解约不需要支付违约金吧
点赞 评论 收藏
分享
评论
8
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务