zoukankan      html  css  js  c++  java
  • leetcode 98:n-queens-ii

    题目描述

    继续思考“n-queens”问题
    这次我们不是输出皇后的排列情况,而是输出n皇后问题一共有多少种解法

    Follow up for N-Queens problem.

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



    示例1

    输入

    复制
    1

    输出

    复制
    1
    
    示例2

    输入

    复制
    8

    输出

    class Solution {
    public:
        /**
         *
         * @param n int整型
         * @return int整型
         */
        void f(int &cnt,int a[],int n,int level){
            if (level ==n) {cnt++;return;}
            for (int i=0;i<n;i++){
                int j=0;
                for (;j<level;j++){
                    if (a[j]==i || level -j ==i-a[j] || j-level==i-a[j]) break;
                    
                }
                if (j==level){
                    a[level]=i;
                    f(cnt,a,n,level+1);
                }
            }
        }
        int totalNQueens(int n)
        {
            int a[n];
            int cnt=0;
            f(cnt,a,n,0);
            return cnt;
            
        }
        
    };

  • 相关阅读:
    小节 +三元表达式
    continue
    break
    flag标签
    #region #endregion
    for 循环
    do while 有例句体会循环的真正原理
    while 循环
    前缀和与差分
    递归的循环实现
  • 原文地址:https://www.cnblogs.com/hrnn/p/13402651.html
Copyright © 2011-2022 走看看