欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

dfs实现任意n个数的全排列

程序员文章站 2023-12-21 20:11:58
...
arr=[4,7,3,8] # 这里可以把它替换成任意的数组
a=[0 for i in range(10)]  #存放每一种组合遍历过程中的数字
book=[0 for i in range(10)] #标记数组
n=3
def dfs(step):
    # 尝试每一种可能
    for num in arr:
        if book[num]==0:
            a[step]=num
            book[num]=1
            dfs(step+1)
            book[num]=0
    # 边界判断
    if step==len(arr)+1:
        print(a[1:step])
        return

if __name__=="__main__":
    dfs(1)
相关标签: 笔面试试题

上一篇:

下一篇: