博客
关于我
leetcode做题记录0052
阅读量:343 次
发布时间:2019-03-04

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

leetcode 0051

说明

只是为了记录一下,不求多快,也不深究。

会简要描述思路,代码中不写注释。

如碰到不会做的用了别人代码会在博客中标出。

题目描述

在这里插入图片描述

思路

就跟上一题一样啊,上一题是把所有解都找出来,这题是求出解的个数,比上一题还简单一点。

class Solution {       private int count;	private int[] cols;	private int[] mains;	private int[] secondary;	private int[] queens;	private int n;	public int totalNQueens(int n) {   		cols = new int[n];		mains = new int[2 * n - 1];		secondary = new int[2 * n - 1];		queens = new int[n];		this.n = n;		this.count = 0;		backTrack(0);		return count;	}	private void backTrack(int row) {   		if (row == n) {   			count++;			return;		}		for (int col = 0; col < n; col++) {   			if (isOkToPut(row, col)) {   				putQueen(row, col);			} else {   				continue;			}			backTrack(row + 1);			removeQueen(row, col);		}	}	private boolean isOkToPut(int row, int col) {   		if (cols[col] == 0 && mains[row - col + n - 1] == 0 && secondary[row + col] == 0) {   			return true;		} else {   			return false;		}	}	private void putQueen(int row, int col) {   		queens[row] = col;		cols[col] = 1;		mains[row - col + n - 1] = 1;		secondary[row + col] = 1;	}	private void removeQueen(int row, int col) {   		queens[row] = 0;		cols[col] = 0;		mains[row - col + n - 1] = 0;		secondary[row + col] = 0;	}}

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

你可能感兴趣的文章
2.1 Kubernetes--Pod
查看>>
python file文件操作--内置对象open
查看>>
Error connecting to undo manager of souce file
查看>>
ERP/MIS开发 LLBL Gen多表操作
查看>>
架构师入门:搭建基本的Eureka架构(从项目里抽取)
查看>>
Java核心技术及面试指南 流程控制方面的面试题答案
查看>>
MongoDB 快速扫盲贴
查看>>
修复搜狗、360等浏览器不识别SameSite=None 引起的单点登录故障
查看>>
2017/08/21 工作日志
查看>>
EXTJS4.2——10.Tab+Iframe
查看>>
WEB基础——AJAX
查看>>
one + two = 3
查看>>
Kali Day01 --- arpspoof命令进行断网攻击(ARP欺骗)
查看>>
echart关系图平分节点删除时自动平衡问题
查看>>
【Coursera】Internet History 读书笔记
查看>>
《ODAY安全:软件漏洞分析技术》学习心得-----shellcode的一点小小的思考
查看>>
PHP serialize && unserialize Security Risk Research
查看>>
sctf_2019_easy_heap
查看>>
给asterisk1.8.7添加menuselct选项
查看>>
ASP.NET Core分布式项目实战(oauth2 + oidc 实现 server部分)--学习笔记
查看>>