当前位置: 首页 > 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.zqtcl.cn/news/937679/

相关文章:

  • 怎么上国外购物网站网站毕业作品代做
  • wordpress 描述字段seo排名技术教程
  • 重庆seo网站建设wordpress评论邮件插件
  • 企业网站模板下载网站模板下载做一个购物商城网站多少钱
  • 网站开发有哪些服务推荐电子商务网站建设
  • 网站交互技术网站框架类型
  • 国内网站建设公司top20对软件开发的理解和认识
  • 一键生成网站前端开发用什么语言
  • pc 网站建设苏州seo网站诊断
  • 江苏盐城建筑公司网站seo专员的工作内容
  • 做网站内容腾讯云wordpress教程
  • 如何建设 linux 网站旅游区网站开发
  • 云南网站设计哪家好wordpress 右边栏
  • 服务器网站部署端口配置网站,商城,app+建设
  • 如何做公司网站优化装修店铺
  • 网站开发中常见的安全漏洞卢松松博客源码 wordpress博客模板
  • 美妆销售网站开发的目的东莞营销网站
  • 企业网站管理系统使用教程域名到期 网站打不开
  • 长春网站建设哪家专业国外免备案域名
  • 网站后台上传图片做难吗网站特效怎么做的
  • 泉州网站优化lamp环境做网站
  • 设计常用网站网站常见程序问题
  • 做网站竟然不知道cms如何添加网站图标
  • 东莞阳光网站官网缘魁上海网站建设
  • 山西孝义网站开发平面设计类网站有哪些
  • 手机版怎么做微电影网站青岛网站设计定制
  • 部队织梦网站模板免费下载红河网站建设代理
  • 网站开发学院网页制作模板html图片
  • 企业门户网站模板html上线网站备案和实名认证
  • 抖音代运营内容seo职业规划