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

网站建设框架都有哪些内容html5国内网站建设

网站建设框架都有哪些内容,html5国内网站建设,手机图片编辑,英文专业的网站设计思路#xff1a; N皇后问题要求在一个nn的棋盘上放置n个皇后#xff0c;使得它们不能相互攻击。皇后可以攻击同一行、同一列#xff0c;以及两个对角线方向上的其他皇后。解决这个问题意味着找到所有可能的棋盘配置#xff0c;每个配置都符合上述条件。 1、初始化数据结构… 思路 N皇后问题要求在一个n×n的棋盘上放置n个皇后使得它们不能相互攻击。皇后可以攻击同一行、同一列以及两个对角线方向上的其他皇后。解决这个问题意味着找到所有可能的棋盘配置每个配置都符合上述条件。  1、初始化数据结构 使用一个整型数组record来记录每个皇后的位置。其中record[i] j表示第i行的皇后位于第j列。使用一个列表list来收集所有有效的棋盘配置。 2. 递归和回溯 利用递归函数遍历棋盘的所有可能状态对每一行尝试放置一个皇后并通过回溯方法探索所有可能的解决方案 递归函数定义创建一个递归函数process2(i, record, n, list)其中i代表当前行record用于记录皇后位置n为棋盘大小list用于存储所有合法的棋盘配置。终止条件当当前行i等于n时表示所有行都已经成功放置了皇后。此时根据record数组生成一个棋盘配置加入到解决方案列表list中。 3. 验证放置是否有效 在递归中对于每一行的每一列检查放置皇后是否合法 列冲突确保没有其他皇后在同一列。对角线冲突确保没有其他皇后在两个可能的对角线上。 这可以通过检查当前尝试放置的列的索引与之前每行皇后列的索引的差的绝对值是否等于行的差的绝对值来实现。 4. 生成棋盘配置 每当找到一个有效的皇后布局后需要将其转换为棋盘的字符串表示形式 对于record中的每个元素表示列位置构造一个字符串其中Q表示皇后的位置而.表示空位。 5. 回溯 每次尝试放置一个皇后后进入下一行继续尝试。如果发现当前行的某个列位置导致无法找到有效配置则回溯到上一行改变皇后的位置然后再次尝试。通过逐行递归和回溯可以探索棋盘的所有可能状态直到找到所有有效的解决方案。 通过这种结合递归与回溯的方法N皇后问题可以被系统地解决所有可能的棋盘配置都会被找到并记录。 class Solution {// 主函数用于解决n皇后问题接收棋盘大小n返回所有合法的棋盘配置public ListListString solveNQueens(int n) {if (n 1) {return new ArrayList(); // 如果n小于1直接返回空列表因为没有可行的棋盘配置}int[] record new int[n]; // 创建数组记录每一行皇后的列位置ListListString list new ArrayList(); // 存储所有有效的棋盘配置process2(0, record, n, list); // 从第0行开始递归处理放置皇后return list; // 返回所有找到的棋盘配置}// 递归函数用于处理从第i行开始的皇后放置private void process2(int i, int[] record, int n, ListListString list) {if (i n) { // 如果已经处理完所有行ListString childList new ArrayList(); // 创建一个新的列表存储当前棋盘的一种配置for (int index 0; index record.length; index) { // 遍历每一行int num record[index]; // 获取当前行皇后的列位置StringBuilder builder new StringBuilder(); // 使用StringBuilder构建每一行的字符串表示for (int j 0; j n; j) { // 遍历每一列if (j num) {builder.append(Q); // 如果当前列是皇后的位置添加Q} else {builder.append(.); // 否则添加.}}childList.add(builder.toString()); // 将构建好的字符串加入到当前棋盘配置中}list.add(childList); // 将当前配置添加到解决方案列表中} else {// 尝试在当前行i放置皇后的所有可能列for (int j 0; j n; j) {if (isValid(record, i, j)) { // 检查在第i行的第j列放置皇后是否有效record[i] j; // 如果有效记录这个位置process2(i 1, record, n, list); // 递归处理下一行}}}}// 检查在第i行的第j列放置皇后是否会导致冲突public static boolean isValid(int[] record, int i, int j) {for (int k 0; k i; k) { // 检查之前的每一行// 判断列冲突和对角线冲突if (j record[k] || Math.abs(record[k] - j) Math.abs(i - k)) { return false; // 如果有冲突返回false}}return true; // 如果没有冲突返回true} }
http://www.pierceye.com/news/937679/

相关文章:

  • 国内网站没备案自己做外贸购物网站
  • 国外h5网站模板下载长沙快速建站模板
  • 湛江网站建设方案找工程项目
  • 孝感住房和城乡建设部网站深圳市做网站公司
  • 网站开发环境配置做一个信息网站多少钱
  • 小企业网站建设的小知识wordpress显示关闭评论框
  • vue.js 可以做网站吗注册一个公司一年费用
  • 软件开发网站策划方案百度网站怎么用
  • 网站分页符素材wordpress自定义密码
  • 建设银行公积金预约网站首页大宗商品交易平台政策
  • 口碑好的秦皇岛网站建设哪里有沙漠网站建设
  • 推荐外贸网站建设的公司聊城做网站费用价格
  • 在线设计的网站android 网站开发
  • 河北省建设厅网站官网织梦手机网站制作
  • 网站建设管理物联网的发展前景
  • 广州网站建设外贸做vip视频网站赚钱吗
  • 模板网建站山西 网站制作
  • 网站建设捌金手指花总二七网页制作与设计的内容
  • 阿凡达网站建设网网络营销包括什么内容
  • 网站设计师是什么做的好的国外网站
  • 19年做网站织梦cms源码
  • 做定制网站怎么样原创网站设计
  • 淮安网站建设 淮安网站制作反向代理wordpress
  • 七台河北京网站建设深圳营销策划
  • 陕西西乡网站建设如何做网站效果图
  • 三门峡高端网站建设临安建设规划局网站
  • 可信网站认证哪里有网站建设分金手指排名一
  • 十大品牌网站建设专业网站的利弊
  • 如何查看网站域名360seo
  • 苏州网站设计kgwl手机网站全屏代码