博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode刷题笔记 N 皇后II
阅读量:3747 次
发布时间:2019-05-22

本文共 986 字,大约阅读时间需要 3 分钟。

52. N 皇后II

时间:2020年10月17日
知识点:回溯
题目链接:

题目

n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。

在这里插入图片描述

上图为 8 皇后问题的一种解法。

给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。

每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。

示例:

输入

4

输出:

2

解释

[[".Q..",  // 解法 1  "...Q",  "Q...",  "..Q."], ["..Q.",  // 解法 2  "Q...",  "...Q",  ".Q.."]]

4 皇后问题存在两个不同的解法。

提示:

皇后彼此不能相互攻击,也就是说:任何两个皇后都不能处于同一条横行、纵行或斜线上。

解法:

  1. 与类似
  2. 不用求出具体解法

代码

#include 
#include
#include
using namespace std;class Solution {
public: int totalNQueens(int n) {
int ans = 0; vector
> vis(n,vector
(n,0)); dfs(0,n,ans,vis); return ans; } void dfs(int row,int n,int &ans,vector
> &vis){ if(row > n){ return;} if(row==n){ ans++;return;} for(int col=0;col
> &vis,int n){ //同一行无需判断 for(int i=0;i
=0&&j>=0;i--,j--) if(vis[i][j]) return false; for(int i=row-1,j=col+1;i>=0&&j

今天也是爱zz的一天哦!

转载地址:http://umdsn.baihongyu.com/

你可能感兴趣的文章
二叉树的镜像实现(python版)
查看>>
ptqt5控件了解(三)
查看>>
自学C++(一)
查看>>
51单片机介绍(二)
查看>>
STM32F103 入门篇-5-初识STM32
查看>>
后台框架的frameset
查看>>
Spring Jdbc
查看>>
Spring 事务管理
查看>>
spring与mybatis的整合
查看>>
json数据交换和RESTful支持
查看>>
spring中的拦截器
查看>>
文件上传和下载
查看>>
Oracle指令,软件架构,
查看>>
oracle5:oracle的图形界面操作,分页查询,练习
查看>>
密码学基础之对称密码体制和公钥密码体制
查看>>
Spark Streaming进阶
查看>>
C++顺序表经典算法
查看>>
网络安全与管理知识点总结
查看>>
YARN的概述
查看>>
企业级ansible(一)-----ansible的基础知识了解
查看>>