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

太原模板建站平台网站上放个域名查询

太原模板建站平台,网站上放个域名查询,wordpress+海+主题,wordpress导入demo130. 被围绕的区域 图论 dfs/bfs dfs代码框架 void dfs(参数) {if (终止条件) {存放结果;return;}for (选择#xff1a;本节点所连接的其他节点) {处理节点;dfs(图#xff0c;选择的节点); // 递归回溯#xff0c;撤销处理结果} }思路#xff1a;本题要求找到被x围绕的陆…130. 被围绕的区域 图论 dfs/bfs dfs代码框架 void dfs(参数) {if (终止条件) {存放结果;return;}for (选择本节点所连接的其他节点) {处理节点;dfs(图选择的节点); // 递归回溯撤销处理结果} }思路本题要求找到被x围绕的陆地所以边界的陆地O肯定不符合条件。那么我们只要从周边找到陆地O然后 通过 dfs或者bfs 将周边靠陆地且相邻的陆地O都变成A然后再去重新遍历地图的时候把剩下的O变成X再把所有的A变成O。 确认递归函数参数 一般情况深搜需要 二维数组数组结构保存所有路径需要一维数组保存单一路径这种保存结果的数组我们可以定义一个全局变量避免让我们的函数参数过多。 因为需要上下左右遍历所以构建一个方向坐标 int dir[4][2] {-1, 0, 0, -1, 1, 0, 0, 1}; 递归函数参数为地图还有当前坐标x,y void dfs(vectorvectorchar board, int x, int y)确认终止条件 终止添加不仅是结束本层递归同时也是我们收获结果的时候。 另外其实很多dfs写法没有写终止条件其实终止条件写在了 下面dfs递归的逻辑里了也就是不符合条件直接不会向下递归。 这个代码的终止条件就是写在递归逻辑里的。 当前方向超出边界停止当前方向的遍历 for(int i0;i4;i){nextxxdir[i][0];nextyydir[i][1];if(nextx0||nextxboard.size()||nexty0||nextyboard[0].size())continue;}处理目前搜索节点出发的路径 把当前节点改为A 没必要回溯得到坐标且坐标没有过界则判断该节点是否是X或者A若是则停止当前方向的遍历 若不是就继续递归 class Solution { public:int dir[4][2] {-1, 0, 0, -1, 1, 0, 0, 1}; void dfs(vectorvectorchar board, int x, int y){board[x][y]A;for(int i0;i4;i){int nextxxdir[i][0];int nextyydir[i][1];if(nextx0||nextxboard.size()||nexty0||nextyboard[0].size())continue;if(board[nextx][nexty]X||board[nextx][nexty]A)continue;dfs(board, nextx, nexty);}return;}void solve(vectorvectorchar board) {int nboard.size(), mboard[0].size();for(int i0;in;i){if(board[i][0]O)dfs(board,i,0);if(board[i][m-1]O)dfs(board,i,m-1);}for(int j0;jm;j){if(board[0][j]O)dfs(board,0,j);if(board[n-1][j]O)dfs(board,n-1,j);}for(int i0;in;i)for(int j0;jm;j){if (board[i][j] O) board[i][j] X;if (board[i][j] A) board[i][j] O;}return;} }; 131. 分割回文串 回溯 切割问题类似组合问题 for循环表示在哪里切下第1刀 递归表示在第一刀的基础上下面的几刀在哪切 递归函数的返回值以及参数 定义两个全局变量一个用来存放符合条件单一结果一个用来存放符合条件结果的集合。 vectorvectorstring result; vectorstring path; 函数里有两个参数字符串s还有记录本层递归的中从哪里开始切的startIndex void backtracking (const string s, int startIndex)递归函数终止条件 字符串切完了就终止把当前路径存到结果里 if(startIndexs.length()){result.push_back(path);return; }单层搜索的逻辑 从startIndex开始遍历startIndex后面所有的位置。如果startIndex到当前位置的字符串是回文子串则加入当前路径。否则跳过 然后递归当前位置的下一个位置为下一个递归的startIndex 递归结束回溯弹出当前字符串 for(int istartIndex; is.length();i) {if(isPalindrome(s, startIndex, i)){string str s.substr(startIndex, i - startIndex 1);path.push_back(str);}else continue;backtracking(s, i1);path.pop_back(); }然后要写是否是回文子串 双指针一前一后对比 bool isPalindrome(const string s, int startIndex, int end) {for(int istartIndex, int jend;ij; i,j--){if(s[i]!s[j])return false;}return true; }整体代码 class Solution { public:bool isPalindrome(const string s, int startIndex, int end){for(int istartIndex,jend;ij; i,j--){if(s[i]!s[j])return false;}return true;}vectorvectorstring result;vectorstring path;void backtracking (const string s, int startIndex) {if(startIndexs.length()){result.push_back(path);return;}for(int istartIndex; is.length();i){if(isPalindrome(s, startIndex, i)){string str s.substr(startIndex, i - startIndex 1);path.push_back(str);}else continue;backtracking(s, i1);path.pop_back();}return;}vectorvectorstring partition(string s) {result.clear();path.clear();backtracking(s, 0);return result;} };
http://www.hkea.cn/news/14446689/

相关文章:

  • 成都摄影网站建设wordpress有哪些小工具
  • 长沙市制作企业网站公司石家庄市住房城乡建设局网站
  • 专门做win7的网站手机棋牌游戏平台
  • 重庆网站建设哪家公司哪家好网页界面设计想法
  • 龙岗网站建设排名骏域网络科技有限公司
  • 12306网站建设团队网站开发提案
  • 柳州市住房和城乡建设部网站海尔的网络营销模式
  • 怎么做qq分享网站wordpress页脚修改
  • 有色建设网站加强网站互动交流平台建设自查
  • 网站开发与维护竞赛临夏建设网站
  • wordpress网站合并企业建站做网站
  • 淮南查查网手机网站怎么做SEO优化
  • 番禺外贸型网站建设桂林房产
  • 深圳 网站策划wordpress 生成水印
  • 常见的网站首页布局特价手机网站建设
  • 电脑装机网站明星百度指数在线查询
  • 科技公司网站建设策划方案海南省建设工程执业中心网站
  • 百度网站降级的原因wordpress 七牛 水印
  • 怎么学php网站开发大气婚庆网站源码
  • 东莞最便宜网站建设小门户网站模版
  • 网站建设费用 做个网站要多少钱手机网站怎么做淘宝客
  • 常用网站开发软件6企业网站建立意义何在
  • 苏州网站建设软件收费关于网站建设管理的通知
  • 网站建设的美图网店推广方法和技巧
  • seo点击排名软件哪家好网站建设和网络优化请示
  • ppt做的最好的网站四川平昌县建设局网站
  • 南宁网站制作定制如何用ftp登陆网站
  • 福州网站设计哪家好网站开发用盗版犯法
  • 成都网络推广网站奉贤网站建设推广
  • 专业建设标准搜易网优化的效果如何