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

p图做网站兼职手机网站建设规范

p图做网站兼职,手机网站建设规范,单位的网站的建设方案,展览设计制作公司题目链接 /** 将n个棋子放在n*n的棋盘上,不同列,不同行,不同斜线 大致执行流程: 首先选取第一行第一格放置第一个棋子,再从第二行第一个位置开始选取合法的位置(不同行不同列不同斜线)放置棋子,重复上述流程迭代行数, 直到放置n个棋子。 若放置途中出现无合法位置的情况,回溯将…

题目链接

/**

            将n个棋子放在n*n的棋盘上,不同列,不同行,不同斜线

            大致执行流程:

                    首先选取第一行第一格放置第一个棋子,再从第二行第一个位置开始选取合法的位置(不同行不同列不同斜线)放置棋子,重复上述流程迭代行数,

                    直到放置n个棋子。

                    若放置途中出现无合法位置的情况,回溯将上一行棋子放置在其他合法位置,再重复上述流程继续放置直到n个棋子。

                    成功放置n个棋子后得到第一种情况,开始回溯重复上述流程,直到回溯至第一行的每个格子都尝试过,得到所有结果

            额外方法:

                    boolean isValid 检查欲放置位置的合法性

                    List<String> BoardToList 棋盘格式转换

 */

class Solution {//棋盘private char[][] board;//保存结果private List<List<String>> res = new ArrayList<>();//避免重复传参private int n;public List<List<String>> solveNQueens(int n) {/**将n个棋子放在n*n的棋盘上,不同列,不同行,不同斜线大致执行流程:首先选取第一行第一格放置第一个棋子,再从第二行第一个位置开始选取合法的位置(不同行不同列不同斜线)放置棋子,重复上述流程迭代行数,直到放置n个棋子。若放置途中出现无合法位置的情况,回溯将上一行棋子放置在其他合法位置,再重复上述流程继续放置直到n个棋子。成功放置n个棋子后得到第一种情况,开始回溯重复上述流程,直到回溯至第一行的每个格子都尝试过,得到所有结果额外方法:boolean isValid 检查欲放置位置的合法性List<String> BoardToList 棋盘格式转换*/this.n = n;this.board = new char[n][n];//初始化棋盘for(int i = 0; i < n; i++) {for(int j = 0; j < n; j++) {board[i][j] = '.';}}//开始放置backtrack(0);return res;}private void backtrack(int row) {//已放置n个棋子,保存结果if(row == n) {res.add(BoardToList());return;}for(int col = 0; col < n; col++) {//当前位置合法if(isValid(row,col)) {board[row][col] = 'Q';backtrack(row + 1);//回溯board[row][col] = '.';}}}//判断合法性 判断不同列不同斜线即可,同行已由index控制private boolean isValid(int row, int col) {//检查列冲突 row可体现出已放置棋子数 i < row 避免不必要的检查for(int i = 0; i < row; i++) {if(board[i][col] == 'Q') {return false;}}//左下对角(上方无棋子,无需检查左上)for (int i = row - 1, j = col - 1; i >= 0 && j >= 0; i--, j--) {if (board[i][j] == 'Q') {return false;}}//右下对角(上方无棋子,无需检查右上)for (int i = row - 1, j = col + 1; i >= 0 && j < n; i--, j++) {if (board[i][j] == 'Q') {return false;}}return true;}// 将棋盘转换为结果格式(List<String>)private List<String> BoardToList() {List<String> list = new ArrayList<>();for (int i = 0; i < n; i++) {list.add(new String(board[i])); //按行批量转化}return list;}}

http://www.dtcms.com/a/521200.html

相关文章:

  • 如何将 ONLYOFFICE 文档社区版更新到 v9.1(Docker、Linux、Windows)
  • 网站架构和网络哈尔滨网站建设口碑好
  • CNN 模型搭建与训练:PyTorch 实战 CIFAR10 任务
  • 网站目录模板新月直播大全免费下载手机版官网
  • 常州建设工程监理员挂证网站网站网上商城建设方案
  • JavaEE知识点总结
  • 昆明网站排名传媒公司可以做网站么
  • 在一家传媒公司做网站编辑 如何产品备案号查询平台官网
  • 【Dart】1、Dart 环境配置
  • 网页设计素材站莱州网站建设教程
  • 深圳网站建设公司官网移动网站建设书
  • 国外移动端网站模板php网站开发 多少钱
  • wordpress page样式网站seo新手
  • 公司网站制作高端白头鹰网站一天可以做多少任务
  • 开源工具新突破!JSON Crack+cpolar用可视化交互提升复杂数据协作效率
  • 网站设计团队有哪些职业wordpress 最新教程视频
  • 滕州市建设局网站武威网站建设优化
  • [nanoGPT] 数据预处理与分词 | BPE配合`tiktoken`
  • 搜索引擎收录入口飞猪关键词排名优化
  • 酒店手机网站模板电子商务网站建设与实践
  • 中国公路建设招标网站开发软件网站
  • 开发做一个网站的流程客源引流推广app
  • 南通网站建设总结如何应用网络营销发挥作用
  • CSS 总结
  • Idea 查找未使用的代码
  • 网站二级域名查询wordpress详情页图片放大
  • 首钢建设公司网站wordpress如何开启gzip
  • 淘宝商品详情数据 API 技术解析与实战指南
  • C++ STL <algorithm>中泛型算法:查找、排序、修改、统计、生成
  • 中石化石油工程建设公司官方网站wordpress留言板页面怎么制作