当前位置: 首页 > web >正文

LeetCode 52. N 皇后 II java题解

https://leetcode.cn/problems/n-queens-ii/description/

N皇后问题中,求的是每一种解法,而在2中要求解法的个数,可以直接沿用1的代码,返回一个整数代表种类数。

class Solution {boolean[] a;boolean[] b;boolean[] c;int count=0;public int totalNQueens(int n) {a=new boolean[n];b=new boolean[2*n];c=new boolean[2*n];ArrayList<Integer> tmp=new ArrayList<>();//记录每一行,放在哪一列find(0,n,tmp);//第几个(放在第几行); 一共n个return count;}public void find(int i,int n,ArrayList<Integer> tmp){if(i==n){//前面已经全部找到了,加入结果count++;return;}for(int j=0;j<n;j++){//遍历每一列if(a[j]||b[i-j+n]||c[i+j]){continue;//跳过已用的}//标记用过a[j]=true;b[i-j+n]=true;c[i+j]=true;tmp.add(j);//代表放在第j列了find(i+1,n,tmp);//回溯a[j]=false;b[i-j+n]=false;c[i+j]=false;tmp.remove(tmp.size()-1);//代表放在第j列了}}    
}
/**
记录是否用过:
这一行是否用过。每一行放一个,所以不必记录行。
这一列是否用过
这一(左上到右下)对角线方向是否用过: i-j相同。可能存在负数所以加n.
这一(右上到左下)对角线方向是否用过:i+j是否相同。和不超过2n*/
http://www.xdnf.cn/news/8263.html

相关文章:

  • DeepSeek 赋能数字艺术:从灵感到成品的智能跃迁
  • Linux系统:基础命令之 ls~pwd~cd
  • # JavaSE核心知识点02面向对象编程
  • 【Bluedroid】蓝牙 HID HOST连接全流程源码解析
  • 基于“理采存管用”的数据中台建设方案
  • 高等数学-三角函数
  • PyTorch模型生命周期管理全流程指南:从训练到生产部署
  • SpringBoot的前世今生
  • python 中 SchedulerManager 使用踩坑
  • Spring AI之Advisors (增强器)
  • 中证500股指期货的名词解释
  • Ubuntu-多显示器黑屏问题及nvidia显卡驱动安装
  • 华为模拟器练习简单的拓扑图(五台交换机和pc,4台路由器)
  • MongoDB数据库在现代应用中的高效实践与优化策略
  • 47页 @《人工智能生命体 新启点》中國龍 原创连载
  • Linux下的Socket编程
  • 多端协同开发能力大比拼: AI 编程工具技术架构对比
  • 华为2025年校招笔试真题手撕教程(一)
  • vue3项目动态路由的相关配置踩坑记录
  • LeetCode Hot100 (双指针)
  • 什么是出入库管理系统?2025年五大出入库管理软件推荐
  • 部署TOMEXAM
  • (tarjan 缩点)洛谷 P3119 USACO15JAN Grass Cownoisseur G 题解
  • 文章被检测出是AI写的怎么办?
  • 手写Tomcat(二)—Tomcat简化模型架构
  • 2023河南CCPC省赛vp部分补题
  • 电子墨水电子阅读器行业2025数据分析报告
  • 如果教材这样讲--碳膜电阻、金属氧化膜电阻、金属膜电阻、保险丝电阻、绕线电阻的区别和用途
  • 618服饰大促新打法:在抖音解锁增长三连击
  • 深入理解 PlaNet(Deep Planning Network):基于python从零实现