LeetCode||52. N-Queens II
2017-11-07 18:17
429 查看
Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.
![](https://leetcode.com/static/images/problemset/8-queens.png)
这题比上一题简化一点,不用拍列出所有的情况,只要给个数字,思路还是回溯
class Solution(object):
def totalNQueens(self, n):
"""
:type n: int
:rtype: int
"""
def isqueens(depth, val):
for i in range(depth):
if board[i] == val or abs(depth-i) == abs(board[i]-val):
return False
return True
def dfs(depth):
if depth == n:
ans.append(0)
return
for i in range(n):
if isqueens(depth, i):
board[depth] = i
dfs(depth+1)
board = [-1 for i in range(n)]
ans = []
dfs(0)
return len(ans)
Now, instead outputting board configurations, return the total number of distinct solutions.
![](https://leetcode.com/static/images/problemset/8-queens.png)
这题比上一题简化一点,不用拍列出所有的情况,只要给个数字,思路还是回溯
class Solution(object):
def totalNQueens(self, n):
"""
:type n: int
:rtype: int
"""
def isqueens(depth, val):
for i in range(depth):
if board[i] == val or abs(depth-i) == abs(board[i]-val):
return False
return True
def dfs(depth):
if depth == n:
ans.append(0)
return
for i in range(n):
if isqueens(depth, i):
board[depth] = i
dfs(depth+1)
board = [-1 for i in range(n)]
ans = []
dfs(0)
return len(ans)
相关文章推荐
- LeetCode 52. N-Queens II
- LeetCode 52. N-Queens II 题解(C++)
- leetCode 52.N-Queens II (n皇后问题II) 解题思路和方法
- Leetcode 52. N-Queens II (Hard) (cpp)
- LeetCode 52. N-Queens II 解题报告
- [LEETCODE]52. N-Queens II
- 【LeetCode】52.N-Queens II(hard)解题报告
- LeetCode --- 52. N-Queens II
- LeetCode 52. N-Queens II
- LeetCode 52. N-Queens II
- LeetCode52. N-Queens II
- [leetcode]52. N-Queens II
- 【LeetCode】52. N-Queens II
- LeetCode--52. N-Queens II
- Leetcode 52. N-Queens II
- LeetCode-52. N-Queens II (JAVA)(N皇后解集个数)
- LeetCode | 52. N-Queens II 经典算法n后问题回溯法
- [LeetCode] 52. N-Queens II
- leetcode-52. N-Queens II
- [leetcode] 52. N-Queens II 解题报告