题解 | #N皇后问题#

N皇后问题

http://www.nowcoder.com/practice/c76408782512486d91eea181107293b6

def queen(result, board, n, row=0):
    if row >= n:
        result.append(board[::])
    else:
        for col in range(n):
            for i in range(row):
                x, y = i - row, board[i] - col
                if y == 0 or x == y or x == -y:
                    break
            else:
                board[row] = col
                queen(result, board, n, row + 1)
while True:
    try:
        n, res = int(input().strip()), []
        queen(res, [0 for _ in range(n)], n)
        print(len(res))
    except:
        break
全部评论

相关推荐

11-04 14:10
东南大学 Java
_可乐多加冰_:去市公司包卖卡的
点赞 评论 收藏
分享
三年之期已到我的offer快到碗里来:9硕都比不上9本
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务