File tree Expand file tree Collapse file tree 3 files changed +126
-0
lines changed Expand file tree Collapse file tree 3 files changed +126
-0
lines changed Original file line number Diff line number Diff line change @@ -246,6 +246,49 @@ public class Solution {
246
246
}
247
247
```
248
248
249
+ ``` swift
250
+ class Solution {
251
+ private var ans: [[String ]] = []
252
+ private var col: [Int ] = Array (repeating : 0 , count : 0 )
253
+ private var dg: [Int ] = Array (repeating : 0 , count : 0 )
254
+ private var udg: [Int ] = Array (repeating : 0 , count : 0 )
255
+ private var g: [[String ]] = Array (repeating : Array (repeating : " ." , count : 0 ), count : 0 )
256
+ private var n: Int = 0
257
+
258
+ func solveNQueens (_ n : Int ) -> [[String ]] {
259
+ self .n = n
260
+ col = Array (repeating : 0 , count : n)
261
+ dg = Array (repeating : 0 , count : n * 2 )
262
+ udg = Array (repeating : 0 , count : n * 2 )
263
+ g = Array (repeating : Array (repeating : " ." , count : n), count : n)
264
+ dfs (0 )
265
+ return ans
266
+ }
267
+
268
+ private func dfs (_ i : Int ) {
269
+ guard i < n else {
270
+ let t = g.map { $0 .joined () }
271
+ ans.append (t)
272
+ return
273
+ }
274
+ for j in 0 ..< n {
275
+ if col[j] + dg[i + j] + udg[n - i + j] == 0 {
276
+ g[i][j] = " Q"
277
+ col[j] = 1
278
+ dg[i + j] = 1
279
+ udg[n - i + j] = 1
280
+ dfs (i + 1 )
281
+ col[j] = 0
282
+ dg[i + j] = 0
283
+ udg[n - i + j] = 0
284
+ g[i][j] = " ."
285
+ }
286
+ }
287
+ }
288
+
289
+ }
290
+ ```
291
+
249
292
<!-- tabs: end -->
250
293
251
294
<!-- end -->
Original file line number Diff line number Diff line change @@ -261,6 +261,49 @@ public class Solution {
261
261
}
262
262
```
263
263
264
+ ``` swift
265
+ class Solution {
266
+ private var ans: [[String ]] = []
267
+ private var col: [Int ] = Array (repeating : 0 , count : 0 )
268
+ private var dg: [Int ] = Array (repeating : 0 , count : 0 )
269
+ private var udg: [Int ] = Array (repeating : 0 , count : 0 )
270
+ private var g: [[String ]] = Array (repeating : Array (repeating : " ." , count : 0 ), count : 0 )
271
+ private var n: Int = 0
272
+
273
+ func solveNQueens (_ n : Int ) -> [[String ]] {
274
+ self .n = n
275
+ col = Array (repeating : 0 , count : n)
276
+ dg = Array (repeating : 0 , count : n * 2 )
277
+ udg = Array (repeating : 0 , count : n * 2 )
278
+ g = Array (repeating : Array (repeating : " ." , count : n), count : n)
279
+ dfs (0 )
280
+ return ans
281
+ }
282
+
283
+ private func dfs (_ i : Int ) {
284
+ guard i < n else {
285
+ let t = g.map { $0 .joined () }
286
+ ans.append (t)
287
+ return
288
+ }
289
+ for j in 0 ..< n {
290
+ if col[j] + dg[i + j] + udg[n - i + j] == 0 {
291
+ g[i][j] = " Q"
292
+ col[j] = 1
293
+ dg[i + j] = 1
294
+ udg[n - i + j] = 1
295
+ dfs (i + 1 )
296
+ col[j] = 0
297
+ dg[i + j] = 0
298
+ udg[n - i + j] = 0
299
+ g[i][j] = " ."
300
+ }
301
+ }
302
+ }
303
+
304
+ }
305
+ ```
306
+
264
307
<!-- tabs: end -->
265
308
266
309
<!-- end -->
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ private var ans : [ [ String ] ] = [ ]
3
+ private var col : [ Int ] = Array ( repeating: 0 , count: 0 )
4
+ private var dg : [ Int ] = Array ( repeating: 0 , count: 0 )
5
+ private var udg : [ Int ] = Array ( repeating: 0 , count: 0 )
6
+ private var g : [ [ String ] ] = Array ( repeating: Array ( repeating: " . " , count: 0 ) , count: 0 )
7
+ private var n : Int = 0
8
+
9
+ func solveNQueens( _ n: Int ) -> [ [ String ] ] {
10
+ self . n = n
11
+ col = Array ( repeating: 0 , count: n)
12
+ dg = Array ( repeating: 0 , count: n * 2 )
13
+ udg = Array ( repeating: 0 , count: n * 2 )
14
+ g = Array ( repeating: Array ( repeating: " . " , count: n) , count: n)
15
+ dfs ( 0 )
16
+ return ans
17
+ }
18
+
19
+ private func dfs( _ i: Int ) {
20
+ guard i < n else {
21
+ let t = g. map { $0. joined ( ) }
22
+ ans. append ( t)
23
+ return
24
+ }
25
+ for j in 0 ..< n {
26
+ if col [ j] + dg[ i + j] + udg[ n - i + j] == 0 {
27
+ g [ i] [ j] = " Q "
28
+ col [ j] = 1
29
+ dg [ i + j] = 1
30
+ udg [ n - i + j] = 1
31
+ dfs ( i + 1 )
32
+ col [ j] = 0
33
+ dg [ i + j] = 0
34
+ udg [ n - i + j] = 0
35
+ g [ i] [ j] = " . "
36
+ }
37
+ }
38
+ }
39
+
40
+ }
You can’t perform that action at this time.
0 commit comments