N-Queens II - LeetCode

来源:互联网 发布:icloud照片下载到mac 编辑:程序博客网 时间:2024/05/02 05:03

Follow up for N-Queens problem.

Now, instead outputting board configurations, return the total number of distinct solutions.


本题主要是深度优先搜索:

public class Solution {    public int totalNQueens(int n) {         int[] queenList = new int[n];          return placeQueen(queenList, 0, n);      }     public boolean isSafe(int[] queenList, int row, int col){          for(int preRow=0; preRow<row; preRow++){              int preCol = queenList[preRow];              if(preRow == row){                       return false;              }              if(preCol == col){                         return false;              }              if(row-preRow == col-preCol){                      return false;              }              if(preRow+preCol == row+col){                         return false;              }          }          return true;      }      public int placeQueen(int[] queenList, int row, int n){          if(row == n){              return 1;          }                     int cnt = 0;          for(int col=0; col<n; col++){              if(isSafe(queenList, row, col)){                  queenList[row] = col;                  cnt += placeQueen(queenList, row+1, n);              }          }          return cnt;      } }


0 0
原创粉丝点击