zoukankan      html  css  js  c++  java
  • [Leetcode] N-Queens II

    Follow up for N-Queens problem.

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

    跟上一题一样,改下结果的显示方式。

     1 class Solution {
     2 public:
     3     bool isValid(vector<string> &board, int x, int y) {
     4         for (int i = 0; i < x; ++i) {
     5             if (board[i][y] == 'Q') return false;
     6         }
     7         for (int i = 0; i < board.size(); ++i) {
     8             for (int j = 0; j < board.size(); ++j) {
     9                 if (i != x && j != y && i-j == x-y && board[i][j] == 'Q')
    10                     return false;
    11                 if (i != x && j != y && i+j == x+y && board[i][j] == 'Q')
    12                     return false;
    13             }
    14         }
    15         return true;
    16     }
    17     
    18     void solveHelper(int &res, vector<string> &board, int idx) {
    19         if (idx == board.size()) {
    20             ++res;
    21             return;
    22         }
    23         for (int i = 0; i < board.size(); ++i) {
    24             board[idx][i] = 'Q';
    25             if (isValid(board, idx, i)) {
    26                 solveHelper(res, board, idx + 1);
    27             }
    28             board[idx][i] = '.';
    29         }
    30     }
    31     
    32     int totalNQueens(int n) { 
    33         int res = 0;
    34         vector<string> board;
    35         string row;
    36         for (int i = 0; i < n; ++i) {
    37             row.push_back('.');
    38         }
    39         for (int i = 0; i < n; ++i) {
    40             board.push_back(row);
    41         }
    42         solveHelper(res, board, 0);
    43         return res;
    44     }
    45 };
  • 相关阅读:
    PHP SOAP
    PHP 笔记
    IIS PHP
    思途CMS
    HTML系列(2)基本的HTML标签(一)
    HTML系列(1)简介
    Python学习进程(14)异常处理
    Python学习进程(13)文件与IO
    Python学习进程(12)模块
    Python学习进程(11)日期和时间
  • 原文地址:https://www.cnblogs.com/easonliu/p/3672326.html
Copyright © 2011-2022 走看看