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;
            
        }
        
    };

  • 相关阅读:
    内存分布
    多态的作用
    c++虚函数实现与this指针
    Makefile 初探
    编译性语言和解释性语言
    从今天开始学好C++
    Java基础
    程序流程控制
    Java运算符
    初识Java
  • 原文地址:https://www.cnblogs.com/hrnn/p/13402651.html
Copyright © 2011-2022 走看看