博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
52. N-Queens II
阅读量:5154 次
发布时间:2019-06-13

本文共 1180 字,大约阅读时间需要 3 分钟。

The n-queens puzzle is the problem of placing n queens on an n×n chessboard such that no two queens attack each other.

Given an integer n, return the number of distinct solutions to the n-queens puzzle.

Example:

Input: 4

Output: 2
Explanation: There are two distinct solutions to the 4-queens puzzle as shown below.
[
[".Q..", // Solution 1
"...Q",
"Q...",
"..Q."],

["..Q.", // Solution 2

"Q...",
"...Q",
".Q.."]
]

class Solution:    def totalNQueens(self, n):        """        :type n: int        :rtype: List[List[str]]        """        board = [-1] *n        count = 0        def safe(a,b):            for i in range(a):                if board[i]==b or abs(board[i]-b)==abs(a-i):                    return False            return True        def dfs(line):            nonlocal count            if line == n:                count += 1                return            else:                for i in range(n):                    if safe(line,i):                        board[line] = i                        dfs(line + 1)        dfs(0)        return count

关键子nonlocal的作用与关键字global类似,使用nonlocal关键字可以在一个嵌套的函数中修改嵌套作用域中的变量

转载于:https://www.cnblogs.com/bernieloveslife/p/9734832.html

你可能感兴趣的文章
Struts2返回JSON数据的具体应用范例
查看>>
js深度克隆对象、数组
查看>>
socket阻塞与非阻塞,同步与异步
查看>>
团队工作第二天
查看>>
System类
查看>>
tableView
查看>>
Happy Great BG-卡精度
查看>>
Xamarin Visual Studio不识别JDK路径
查看>>
菜鸟“抄程序”之道
查看>>
Ubuntu下关闭防火墙
查看>>
TCP/IP 邮件的原理
查看>>
w3m常用快捷键
查看>>
【Unity 3D】学习笔记四十一:关节
查看>>
原型设计工具
查看>>
windows下的C++ socket服务器(4)
查看>>
css3 2d转换3d转换以及动画的知识点汇总
查看>>
【Java】使用Eclipse进行远程调试,Linux下开启远程调试
查看>>
js对象属性方法
查看>>
对Vue为什么不支持IE8的解释之一
查看>>
Maven安装配置
查看>>