ToB企服应用市场:ToB评测及商务社交产业平台

标题: 力扣 困难 52.N皇后II [打印本页]

作者: 曂沅仴駦    时间: 2024-10-23 02:38
标题: 力扣 困难 52.N皇后II
题目先容


题解

法一:返回51题N皇后List的长度
法二:
  1. class Solution {
  2.     private int n, ans;
  3.     private boolean[] onPath, diag1, diag2;
  4.     public int totalNQueens(int n) {
  5.         this.n = n;
  6.         onPath = new boolean[n];
  7.         diag1 = new boolean[n * 2 - 1];
  8.         diag2 = new boolean[n * 2 - 1];
  9.         dfs(0);
  10.         return ans;
  11.     }
  12.     private void dfs(int r) {
  13.         if (r == n) {
  14.             ans++; // 找到一个合法方案
  15.             return;
  16.         }
  17.         for (int c = 0; c < n; c++) {
  18.             int rc = r - c + n - 1;
  19.             if (!onPath[c] && !diag1[r + c] && !diag2[rc]) {
  20.                 onPath[c] = diag1[r + c] = diag2[rc] = true;
  21.                 dfs(r + 1);
  22.                 onPath[c] = diag1[r + c] = diag2[rc] = false; // 恢复现场
  23.             }
  24.         }
  25.     }
  26. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4