原题地址:https://oj.leetcode.com/problems/n-queens-ii/
题意:和N-Queens这道题其实是一样的,只不过这次要求返回的时N皇后的解的个数的问题。
解题思路:上道题使用了递归回溯的解法,这道题我们可以使用非递归回溯来解决,因为如果使用递归回溯来解决,那么代码和上道题几乎一样。在非递归的编程中,比较有技巧性的是如何来进行回溯。
代码:
class Solution: # @return an integer def totalNQueens(self, n): def check(k, j): # check if the kth queen can be put in column j! for i in range(k): if board[i]==j or abs(k-i)==abs(board[i]-j): return False return True board=[-1 for i in range(n)] row=0; col=0; sum=0 while row