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

穷举vs暴搜vs深搜vs回溯vs剪枝系列一>N 皇后

题目: 

 


解析:

1.决策树:  

 


代码设计: 

 


根据决策树剪枝设计: 

 


代码: 

class Solution {private List<List<String>> ret;private char[][] path;private boolean[] checkdig1,checkdig2,checkcol;int n;public List<List<String>> solveNQueens(int _n) {n = _n;ret = new ArrayList<>();path = new char[n][n];checkcol = new boolean[n];//判断列有没有n皇后checkdig1 = new boolean[2*n];//判断主对角线有没有n皇后checkdig2 = new boolean[2*n];//判断副对角线有没有n皇后for(int i = 0; i < n; i++)Arrays.fill(path[i],'.');    dfs(0);return ret;}private void dfs(int row){if(row == n){List<String> tmp = new ArrayList<>();  for(int i = 0; i < n; i++){tmp.add(new String(path[i]));}ret.add(new ArrayList<>(tmp));return;} for(int col = 0; col < n; col++){//剪枝写法,能不能放N 皇后:if(checkcol[col] == false && checkdig1[col-row+n] == false && checkdig2[col+row] == false){path[row][col] = 'Q';checkcol[col] = checkdig1[col-row+n] = checkdig2[col+row] = true;dfs(row+1);//恢复现场path[row][col] = '.';checkcol[col] = checkdig1[col-row+n] = checkdig2[col+row] = false;}}}
}
http://www.lryc.cn/news/523036.html

相关文章:

  • JEL分类号
  • 设计和优化用于 AR、HUD 和高级显示系统的表面浮雕光栅
  • 【今日分享】人工智能加速发现能源新材料的结构与性能
  • Boost Asio TCP异步服务端和客户端
  • 1.7 ChatGPT:引领AI对话革命的致胜之道
  • WPS数据分析000001
  • 电脑风扇声音大怎么办? 原因及解决方法
  • 高效实现 Markdown 转 PDF 的跨平台指南20250117
  • Spark Streaming的核心功能及其示例PySpark代码
  • 自动驾驶占用网格预测
  • 力扣动态规划-2【算法学习day.96】
  • 软考高级5个资格、中级常考4个资格简介及难易程度排序
  • 2.5 如何评估表示学习
  • Linux-day08
  • stack_queue的底层,模拟实现,deque和priority_queue详解
  • LabVIEW 实现线路板 PCB 可靠性测试
  • sqlfather笔记
  • RabbitMQ(四)
  • 【Unity3D】远处的物体会闪烁问题(深度冲突) Reversed-Z
  • 探索与创作:2024年CSDN平台上的成长与突破
  • QT笔记- Qt6.8.1 Android编程 添加AndroidManifest.xml文件以支持修改权限
  • 【Leetcode 每日一题 - 扩展】421. 数组中两个数的最大异或值
  • 计算机网络 | IP地址、子网掩码、网络地址、主机地址计算方式详解
  • C#如何调用执行命令行窗口(CMD)
  • vim练级攻略(精简版)
  • 一文速通Java的JDBC编程
  • laravel中请求失败重试的扩展--Guzzle
  • 如何在vue中渲染markdown内容?
  • Mysql MVCC
  • Spring6.0新特性-HTTP接口:使用@HttpExchange实现更优雅的Http客户端