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

建设部网站中天人建筑工程有限公司爱南宁app下载

建设部网站中天人建筑工程有限公司,爱南宁app下载,引流最好的推广方法,手机网站建设ppt目录 ​编辑 一#xff0c;N皇后问题 1.题意 2.解释 3.题目接口 4.解题思路及代码 二#xff0c;单词搜索 1.题意 2.解释 3.题目接口 4.思路及代码 一#xff0c;N皇后问题 1.题意 按照国际象棋的规则#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上… 目录 ​编辑 一N皇后问题 1.题意 2.解释 3.题目接口 4.解题思路及代码 二单词搜索 1.题意 2.解释 3.题目接口 4.思路及代码 一N皇后问题 1.题意 按照国际象棋的规则皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上并且使皇后彼此之间不能相互攻击。 给你一个整数 n 返回所有不同的 n 皇后问题 的解决方案。 每一种解法包含一个不同的 n 皇后问题 的棋子放置方案该方案中 Q 和 . 分别代表了皇后和空位。 2.解释 这道题其实就是在下国际象棋。国际象棋的皇后是可以走上下左右和斜对角六个方向的。所以在放置皇后时我们就要考虑一下在那个位置放入一个皇后我们才不会被攻击。直到将所有能防止皇后的位置放好以后便返回放好皇后以后的棋盘。 3.题目接口 class Solution { public:vectorvectorstring solveNQueens(int n) {} }; 4.解题思路及代码 class Solution { public:vectorvectorstringret;//存结果vectorstringboard;//开棋盘bool rowCheak[10];bool colCheak[10];bool digit1[20];bool digit2[20];//因为对于一条对角线有row colb-row-col b。但是b在[-n,n]。//为了将负数下标去掉所以在左右两边都加上n:row-coln bn-[0,2*n]//所以diagonal要开20个空间int n;vectorvectorstring solveNQueens(int _n) {n _n;board.resize(n);for(int i 0;in;i){board[i].append(n,.);}dfs(0);return ret;} void dfs(int row){if(row n){ret.push_back(board);return;}for(int col 0;coln;col){if(board[row][col].!rowCheak[row]!colCheak[col]!digit1[row-coln]!digit2[rowcol]){board[row][col] Q;rowCheak[row]colCheak[col]digit1[row-coln] digit2[rowcol] true;dfs(row1);board[row][col] .;rowCheak[row]colCheak[col]digit1[row-coln] digit2[rowcol] false;}}} }; 对于这道题采用的便是类似于哈希表的解决方法。 1.首先我们得找四个布尔类型的数组rowCheak,colCheak,digit1,digit2。这四个布尔类型的数组分别标记的是行列左对角线右对角线。 2.然后便是递归的设计了我们可以采用一个一个的试的方法但是这样效率太低了。所以我们便采用一行一行试的方法来设计递归函数。 dfs(0); 首先从第0行开始。每次遍历一行每次在dfs函数里面遍历每一行的每一列。当对应行列下标的位置不是Q并且这一个格子的行列对角线都没有被使用过便可以插入Q。然后再遍历下一行假设这一行填下的皇后会导致得不到结果便要回溯处理。 3.当row越界的时候说明我们的皇后已经填完了在这个时候便可以返回了。 二单词搜索 1.题意 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中返回 true 否则返回 false 。 单词必须按照字母顺序通过相邻的单元格内的字母构成其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 2.解释 这一道题让我们做的便是在给定一个m*n大小的棋盘并且给定一个单词word的情况下让我们去在这个棋盘里面找到这个单词的每一个字母。并且这个单词的每一个相邻字母在棋盘中还是相邻的。 3.题目接口 class Solution { public:bool exist(vectorvectorchar board, string word) {} }; 4.思路及代码 1.第一种解法 class Solution { public:vectorvectorboolused;int m,n;bool exist(vectorvectorchar board, string word) {m board.size();n board[0].size();used.resize(m);for(int i 0;im;i){used[i].resize(n);}for(int i 0;im;i){for(int j 0;jn;j){ if(dfs(board,i,j,word,0)) return true;//df函数只有在将word的全部字母找到以后才能返回true。}}return false;//全部遍历完了还没有结果便返回false} bool dfs(vectorvectorchar board,int i,int j,string word,int pos){if(i0||im||j0||jn||used[i][j]||board[i][j]!word[pos]) //答案不对的情况{return false;}if(pos word.size()-1)//当最后一个字母也被匹配到了便可以返回true{return true;}used[i][j] true;//使用过了便标记一下bool res dfs(board,i,j-1,word,pos1)||dfs(board,i,j1,word,pos1)||dfs(board,i-1,j,word,pos1)||dfs(board,i1,j,word,pos1);//在这个位置的上下左右寻找used[i][j] false;//res可能是false所以要恢复现场调整上一层的寻找的下标return res;} }; 2.第二种解法 class Solution { public:vectorvectorboolused;int m,n;bool exist(vectorvectorchar board, string word) {m board.size();n board[0].size();used.resize(m);for(int i 0;im;i){used[i].resize(n);}for(int i 0;im;i){for(int j 0;jn;j){ if(board[i][j] word[0]){used[i][j] true;if(dfs(board,i,j,word,1)) return true;used[i][j] false;}}}return false;} bool dfs(vectorvectorchar board,int i,int j,string word,int pos){if(pos word.size()){return true;}int dx[4] {0,0,1,-1},dy[4] {1,-1,0,0};//用数组和for循环来表示上下左右寻找for(int k 0;k4;k){int x idx[k],y jdy[k];if(x0xmy0ynboard[x][y] word[pos]!used[x][y])//只统计对的情况{used[x][y] true;if(dfs(board,x,y,word,pos1)) return true;used[x][y] false;}}return false;} };
http://www.huolong8.cn/news/301384/

相关文章:

  • 网站框架设计模板网站建设客户确认单
  • 哈尔滨网站建设 seo洛阳网新闻中心
  • 服务器迁移对做网站的影响网站推广目的
  • 商城网站布局网站网页设计项目计划书
  • vue做网站前台江苏手机响应式网站建设
  • 手机版微网站wordpress网站统计代码放哪个文件
  • 建购物网站要多少钱平面设计在线网站
  • 广州建站平台哪家好百度搜索指数排行
  • 网站设计和制作费用WordPress链接加前缀
  • 在越南注册公司需要什么条件seo线上培训多少钱
  • 动力启航做网站广西住房城乡建设厅官方网站
  • 上海SEO网站优化推广公司在哪里查商标注册信息
  • 电销如何介绍网站建设门户网站 用什么语言
  • 免费做网站app下载互联网招聘网站排行
  • 简答网站开发流程有域名如何做免费网站
  • 网站不收录是什么原因二级域名做很多网站
  • 智联招聘网站建设个人网站的制作模板
  • 郑州网站建设廴汉狮网络页面模板怎么设置
  • 购物类网站开发竞价托管推广多少钱
  • 淄博网站优化推广朝阳区十大互联网
  • 中卫网站推广公司制作网站的心得
  • 章贡网站建设建设机械员证书查询网站
  • 网站设计 psd百度指数有什么作用
  • 扫二维码直接进入网站怎么做网页游戏传奇世界
  • python+网站开发+prf四川网站建设
  • 营销网站都有哪些自己动手的网站
  • 网站开发的经验技巧定制包装需要多少钱
  • le网站源码哪些行业做网站的多
  • 管理网站怎么做的官网好看的公司
  • 三亚学做网站培训wordpress网站文件目录