File tree 1 file changed +42
-0
lines changed 1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Solution :
2
+ def totalNQueens (self , n : int ) -> int :
3
+ board = [[False for _ in range (n )] for _ in range (n )]
4
+
5
+ ans = self ._traverse (board , 0 )
6
+ return ans
7
+
8
+ def _traverse (self , board : list [list [bool ]], i : int ) -> int :
9
+ if i >= len (board ):
10
+ return 1
11
+
12
+ ans = 0
13
+ for j in range (len (board [0 ])):
14
+ if not self ._is_valid (board , i , j ):
15
+ continue
16
+
17
+ board [i ][j ] = True
18
+ ans += self ._traverse (board , i + 1 )
19
+ board [i ][j ] = False
20
+
21
+ return ans
22
+
23
+
24
+ @staticmethod
25
+ def _is_valid (board : list [list [bool ]], i : int , j : int ) -> bool :
26
+ for k in range (0 , i ):
27
+ if board [k ][j ]:
28
+ return False
29
+
30
+ for k in range (len (board [0 ])):
31
+ if board [i ][k ]:
32
+ return False
33
+
34
+ for k in range (min (i , j )):
35
+ if board [i - (k + 1 )][j - (k + 1 )]:
36
+ return False
37
+
38
+ for k in range (min (i , ((len (board [0 ]) - 1 ) - j ))):
39
+ if board [i - (k + 1 )][j + (k + 1 )]:
40
+ return False
41
+
42
+ return True
You can’t perform that action at this time.
0 commit comments