zoukankan      html  css  js  c++  java
  • leetcode 52 N皇后问题 II

    51的简化版,省去根据排列话棋盘的工作,直接计数,代码:

    class Solution {
    public:
        int totalNQueens(int n) {
            int res=0;
            vector<int> pos(n,-1);
            dfs(n,0,pos,res);
            return res;
        }
        void dfs(int n,int row,vector<int>& pos,int &res){
            if(row==n){
                res++;return;
            }
            for(int col=0;col<n;col++){
                if(isValid(row,col,pos)){
                    pos[row]=col;
                    dfs(n,row+1,pos,res);
                    pos[row]=-1;
                }
            }
        }
        bool isValid(int row,int col,vector<int>&pos){
            for(int i=0;i<row;i++){
                if(col==pos[i] || abs(col-pos[i])==abs(row-i))
                    return false;
            }
            return true;
        }
    };
  • 相关阅读:
    副本集-Replica Sets
    SpringBoot整合SpringData MongoDB
    Auth认证
    Form
    flask一些插件
    SQLAlchemy
    session
    上下文
    flask路由
    Flask中间件
  • 原文地址:https://www.cnblogs.com/joelwang/p/10699042.html
Copyright © 2011-2022 走看看