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

福建省建设厅官方网站flash做ppt的模板下载网站

福建省建设厅官方网站,flash做ppt的模板下载网站,的网站开发工具,wordpress怎么使用这道题之前刷代码随想录的时候跳过了,然后今天是第一次做这个题目,感觉很难,然后去看了代码随想录对应的视频才做出来的。这里主要讲一下思路。 我们首先定义一个递归函数backtracking(),输入参数分别为int row,vector…


这道题之前刷代码随想录的时候跳过了,然后今天是第一次做这个题目,感觉很难,然后去看了代码随想录对应的视频才做出来的。这里主要讲一下思路。
我们首先定义一个递归函数backtracking(),输入参数分别为int rowvector<string>& chessboardint n,其中row表示当前正在第row行填皇后,chessboard表示棋盘,n表示棋盘的尺寸为n * n。显而易见,当row >= n时,则说明0 ~ n - 1行的皇后已经全部填完,则直接收获结果。否则进入递归主体逻辑。由于我们是讨论第row行的皇后放置问题,0 ~ row - 1行已经填好了,而第row行及以后的行则尚未放置,所以我们需要分别讨论在第row行的每一列上放置皇后的结果,我们还需要额外定义一个辅助函数is_valid()来判断在第row行第col列放置皇后是否合法,具体来说,我们通过检查同列,斜上45°和斜上135°(因为第row行及以后的行尚未放置皇后,不可能发生冲突,只需要向上检查即可)是否存在冲突,只要上述三种情况下都没有发现皇后,则说明当前位置可以放置皇后,将当前位置赋值为'Q',并进入下一行的递归:backtracking(row + 1, chessboard, n);当递归调用返回后,需及时回溯,将之前的合法位置处的皇后及时赋值为空地。若不及时回溯,则随着循环的进行,每一行都会塞满皇后。

class Solution {
public:vector<vector<string>> result;   //记录所有符合条件的结果bool is_valid(int row, int col, vector<string>& chessboard, int n){//想在chessboard[row][col]处放置皇后(还没放),判断该位置是否合法,棋盘大小为n * n//观察同一列中有没有放置皇后for(int i = 0; i < n; i++){ if(chessboard[i][col] == 'Q'){return false;}}//观察45°方向上有没有放置皇后//由于逐行放置皇后的,所以下面的行尚未放置皇后,只需要检查上面的//皇后是否存在冲突即可for(int i = row - 1, j = col - 1; i >= 0 && j >= 0; i--, j--){if(chessboard[i][j] == 'Q')return false;}//观察135°方向上有没有放置皇后//由于逐行放置皇后的,所以下面的行尚未放置皇后,只需要检查上面的//皇后是否存在冲突即可for(int i = row - 1, j = col + 1; i >= 0 && j < n; i--, j++){if(chessboard[i][j] == 'Q')return false;}return true;}vector<vector<string>> solveNQueens(int n) {vector<string> chessboard(n, string(n, '.'));  //初始化棋盘backtracking(0, chessboard, n);   return result;}//递归函数void backtracking(int row, vector<string>& chessboard, int n){//递归终止条件if(row >= n){  //0 ~ n - 1行全部放置完毕result.emplace_back(chessboard);return ;}for(int col = 0; col < n; col++){   //在当前行遍历所有的列,寻找放置位置if(is_valid(row, col, chessboard, n)){chessboard[row][col] = 'Q';   //在合法位置放置皇后backtracking(row + 1, chessboard, n);  chessboard[row][col] = '.';  //回溯}}}
};
http://www.dtcms.com/wzjs/840435.html

相关文章:

  • 中建交通建设集团有限公司网站站长工具集
  • 网站开发属于固定资产吗深圳正规seo
  • 营销的网站外贸跨境电商平台
  • 服务器上建设网站互联网营销推广方案
  • 广州金融网站设计百度验证网站的好处
  • 惠州企业网站建设长沙网站推广平台
  • 网站开发实训基本要求怎样让百度搜索到自己的网站
  • 网站建设基础功能友山建站优化
  • 爱网站免费一站二站Iis 建网站为什么说没有该用户
  • 公司网站在百度搜不到wordpress 翻页功能
  • 搭建dede网站服务器手机站模板
  • 传媒大学附近网站建设公司欧米茄官方手表
  • 佛山企业网站自助建站娄底企业网站建设制作
  • 网站页面自动还原代码南海网站建设哪家好
  • 怎样建设的网站好优化好排名建设内网网站流程
  • 大庆网站建设大庆海南百度推广公司电话
  • 企业公司网站模板下载seo外包服务费用
  • 物流网站建设方案范文域名被锁定网站打不开怎么办
  • 师大暨大网站建设图书网站建设的规模策划书
  • 企业名录网站 优帮云万网注册的网站长时间不能访问是不是被封了
  • 中国十大网站建设公司排名网络营销公司架构
  • 开店装修话做那个网站找工人全媒体门户网站建设方案
  • 群辉nas怎么做网站网站主机 流量
  • 广告联盟做网站淮南做网站推广
  • 夜间正能量网站网站开发定制宣传图片
  • 珠海网站外包济南又出现5例
  • 怎么搭建属于自己的网站主页网址
  • 网站建设中常见问题分析seo网站做推广的公司
  • 成都市网站建设服务商用wordpress还是自己写
  • 如何做一个主题网站普洱网站搭建