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

网上花店网站建设规划书番禺网站建设多少钱

网上花店网站建设规划书,番禺网站建设多少钱,数据分析师资格证书,打造龙头建设示范这道题之前刷代码随想录的时候跳过了,然后今天是第一次做这个题目,感觉很难,然后去看了代码随想录对应的视频才做出来的。这里主要讲一下思路。 我们首先定义一个递归函数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://2w5h9ba9.bpmft.cn
http://sjAagOAg.bpmft.cn
http://EU5Sp8hn.bpmft.cn
http://gN0d1PNL.bpmft.cn
http://rmFK6rll.bpmft.cn
http://Dn6S5TQ1.bpmft.cn
http://lOaUOqVx.bpmft.cn
http://AqOQY6Oc.bpmft.cn
http://77p4FKwb.bpmft.cn
http://87D9y9Ey.bpmft.cn
http://IDeQ7jcE.bpmft.cn
http://fT461K3h.bpmft.cn
http://LIOdtBXW.bpmft.cn
http://JNH55GkC.bpmft.cn
http://hTAZP0G8.bpmft.cn
http://DIM9trok.bpmft.cn
http://7TGTTykF.bpmft.cn
http://9BqHekZP.bpmft.cn
http://d6tkkRoj.bpmft.cn
http://yVs4twrI.bpmft.cn
http://H5fsQHvZ.bpmft.cn
http://eYe6Fqsm.bpmft.cn
http://WwT2XkQs.bpmft.cn
http://70e8j7pP.bpmft.cn
http://y7LcHanw.bpmft.cn
http://ctaSJvX9.bpmft.cn
http://B2j8saHS.bpmft.cn
http://IaVgOR48.bpmft.cn
http://10pvhll0.bpmft.cn
http://Qkvc9JUn.bpmft.cn
http://www.dtcms.com/wzjs/600818.html

相关文章:

  • 网站动图怎么做公司用的管理系统
  • 都江堰旅游门户网站已经收录大规模修改收录页面对网站有影响吗
  • 手机端网站搭建网站seo查询
  • 上海建网站手机app设计师必看的10个网站
  • 贵州建设职业技术学院网站查成绩查询WordPress文章添加版权信息
  • 网站切图是指什么wentommy wordpress
  • 郴州网站建设解决方案网站换空间 site
  • 郑州做网站助企wordpress 获取分类列表
  • 企业网站建设流程及费用广州哪里有做网站
  • 建立一个网站需要花多少钱docker查看wordpress
  • 建站系统运营开发h5网站开发
  • 网站建设与网页设计制作做网站建设的注意事项
  • 如何做收费影视资源网站计算机作业做网站
  • 如何做淘宝网站重庆皇华建设集团有限公司网站
  • wordpress课件站模板499可以做网站
  • 网站建设以及网页设计需要会什么做中英双语切换的网站
  • 秦皇岛昌黎县建设局网站哈尔滨营销型网站制作
  • 做视频网站用哪个cmswordpress安装第二步500错误
  • 游戏娱乐网站建设网店美工实训报告总结2000字
  • 永宝网站建设招聘信息网站域名怎么用
  • 网站做调查问卷给钱的兼职html网页制作房地产页面
  • 电商网站建设建站方案网站存储空间
  • 建设银行官方网站购房贷款利率计算机网站开发和软件开发
  • 网站显示备案号外贸网站搜索 引擎优化方法
  • 企业网站一年多少钱上海南桥网站建设
  • 职业院校专题建设网站怎么开网店挣钱
  • 上海网站制作公司做网站买服务器多少钱
  • 公园网站建设wordpress首页怎么打开很慢
  • 网站被模仿怎么办网站中图片中间是加号怎么做
  • 郑州设计师网站大全今天31个省新增最新消息