LeetCode N-Queens II
来源:互联网 发布:lns是什么社交软件 编辑:程序博客网 时间:2024/04/20 08:29
LeetCode解题之N-Queens II
原题
在N-Queens的基础上计算出共有多少种不同的解法。
注意点:
- 只需要计数
例子:
输入: n = 8
输出: 92
解题思路
思路与 N-Queens 一样,不过把原先用来最后拼装的参数之类都去掉了,换了一个计数器来记录数量。
AC源码
class Solution(object): def totalNQueens(self, n): """ :type n: int :rtype: int """ self.col = [False] * n self.diag = [False] * (2 * n) self.anti_diag = [False] * (2 * n) self.result = 0 self.recursive(0, n) return self.result def recursive(self, row, n): if row == n: self.result += 1 else: for i in range(n): if not self.col[i] and not self.diag[row + i] and not self.anti_diag[n - i + row]: self.col[i] = self.diag[row + i] = self.anti_diag[n - i + row] = True self.recursive(row + 1, n) self.col[i] = self.diag[row + i] = self.anti_diag[n - i + row] = Falseif __name__ == "__main__": assert Solution().totalNQueens(8) == 92
欢迎查看我的Github (https://github.com/gavinfish/LeetCode-Python) 来获得相关源码。
0 0
- LeetCode: N-Queens II
- LeetCode : N-Queens II
- [Leetcode] N-Queens II
- 【leetcode】N-Queens II
- LeetCode: N Queens II
- [LeetCode]N-Queens II
- LeetCode - N-Queens II
- LeetCode:N-Queens II
- 【leetcode】N-Queens II
- LeetCode:N-Queens II
- Leetcode: N-Queens II
- leetcode N-Queens II
- LeetCode | N-Queens II
- Leetcode: N-Queens II
- LeetCode N-Queens II
- Leetcode N-Queens II
- N-Queens II -- LeetCode
- N-Queens II - LeetCode
- Block的注意点
- Objective-C Runtime
- Java中整数溢出的问题:int i=1000000;i*i为何等于-727379968,Java是如何处理溢出的?
- Object-C--->Swift之(一)元组(tuple)类型
- IntelliJ IDEA,代码行宽度超出限制时设置自动换行
- LeetCode N-Queens II
- Runtime Method Swizzling
- HTML常见声明
- SparkMLlib之五:优化
- 5、阶段练习,两个快捷键,获取用户输入的信息
- valuestack,stackContext,ActionContext.之间的关系
- Opencv学习之cvCreateMat的用法
- 面试题51:不用加减乘除做加法
- Java 数据结构之List去重