Skip to content

Commit

Permalink
0051N皇后.md Javascript
Browse files Browse the repository at this point in the history
  • Loading branch information
fusunx committed May 23, 2021
1 parent ff3605a commit 3fa29e0
Showing 1 changed file with 59 additions and 0 deletions.
59 changes: 59 additions & 0 deletions problems/0051.N皇后.md
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,65 @@ func solveNQueens(n int) [][]string {
}
```

Javascript:
```
var solveNQueens = function(n) {
function isValid(row, col, chessBoard, n) {
for(let i = 0; i < row; i++) {
if(chessBoard[i][col] === 'Q') {
return false
}
}
for(let i = row - 1, j = col - 1; i >= 0 && j >= 0; i--, j--) {
if(chessBoard[i][j] === 'Q') {
return false
}
}
for(let i = row - 1, j = col + 1; i >= 0 && j < n; i--, j++) {
if(chessBoard[i][j] === 'Q') {
return false
}
}
return true
}
function transformChessBoard(chessBoard) {
let chessBoardBack = []
chessBoard.forEach(row => {
let rowStr = ''
row.forEach(value => {
rowStr += value
})
chessBoardBack.push(rowStr)
})
return chessBoardBack
}
let result = []
function backtracing(row,chessBoard) {
if(row === n) {
result.push(transformChessBoard(chessBoard))
return
}
for(let col = 0; col < n; col++) {
if(isValid(row, col, chessBoard, n)) {
chessBoard[row][col] = 'Q'
backtracing(row + 1,chessBoard)
chessBoard[row][col] = '.'
}
}
}
let chessBoard = new Array(n).fill([]).map(() => new Array(n).fill('.'))
backtracing(0,chessBoard)
return result
};
```



-----------------------
Expand Down

0 comments on commit 3fa29e0

Please sign in to comment.