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

网站开发难不难学wordpress设置水印

网站开发难不难学,wordpress设置水印,wordpress 等级,不再更新的网站这道题花了我好长的时间,本来测试用例都过了,结果后面的输入样例超时了,无语。然后去看了下灵神的题解,感觉我的思路和他未优化过的版本思路是一样的,但是他的不会超时,我的会超时。先说说思路,…


这道题花了我好长的时间,本来测试用例都过了,结果后面的输入样例超时了,无语。然后去看了下灵神的题解,感觉我的思路和他未优化过的版本思路是一样的,但是他的不会超时,我的会超时。先说说思路,这道题还是定义一个dfs()函数,输入参数有linecolumni,分别代表当前访问的元素所在的行数、列数,和当前正在处理第i位数字。若当前位置已经被访问过或者当前位置上的字符与word[i]不相等,则直接返回false,若当前位置的字符未被访问过,并与word[i]相等,且长度也已经达标了,匹配成功,返回true。如果上述情况都不满足,则说明还需要进一步探索。我们首先将(line, column)处标记为已访问,然后依次向四个方向遍历,并递归调用dfs()函数,如果下一地点的位置未超出索引且递归调用返回的结果为true,则说明已经找到一条符合要求的路径,直接返回true,如果遍历了四个方向都没有找到路径则说明这条路行不通,返回false。在主函数中,我们遍历每一个位置,并以之为起点,调用dfs(),一旦出现返回true的情况就立马返回true,循环如果顺利结束则说明整个地图都找不出合法的路径,返回false。下面是我的超时代码。

class Solution {
public:bool exist(vector<vector<char>>& board, string word) {bool result = false;string path;int m = board.size();   //m行int n = board[0].size();  //n列vector<vector<bool>> is_visit(m, vector<bool>(n, false));vector<vector<int>> dirs = {{0, 1},   //右{0, -1},  //左{1, 0},   //下{-1, 0}   //上};//处理第i位上的字符,当前探索到(line, column)的位置auto bfs = [&](this auto&& bfs, int line, int column, int i){//递归终止条件if(i == word.size()){if(path == word)result = true;return ;}//判断是否超出边界if(line < 0 || line >= m || column < 0 || column >= n)return ;    //超出边界,直接返回//递归主体逻辑if(!is_visit[line][column] && board[line][column] == word[i]){//当前位置的字符匹配上了,且未使用过path += board[line][column];is_visit[line][column] = true;//向四周探索for(auto dir : dirs){int next_line = line + dir[0];int next_column = column + dir[1];bfs(next_line, next_column, i + 1);}//回溯path.pop_back();is_visit[line][column] = false;}};for(int i = 0; i < m; i++){for(int j = 0; j < n; j++){bfs(i, j, 0);if(result) return result;}  }return result;}
};

上述代码超时的原因是合法的路径可能有多个,我们只需要找到一条就行,因此在向四周探索的时候,按照代码的逻辑,尽管已经找到了一条合法的路径,但是代码还是会继续向其他方向搜索,这就会导致超时,因此我们需要在找到路径时及时终止搜索。此外,在遍历四个方向时,一定要用引用的方式,否则赋值拷贝的过程也会增加耗时,最终导致超时。以下是经过小优化后的代码(不是最优,还可以进一步剪枝,详见灵神题解)

class Solution {
public:bool exist(vector<vector<char>>& board, string word) {int m = board.size();   //m行int n = board[0].size();  //n列vector<vector<bool>> is_visit(m, vector<bool>(n, false));  //用于标记是否访问过vector<vector<int>> dirs = {{0, 1},   //右{0, -1},  //左{1, 0},   //下{-1, 0}   //上};//处理第i位上的字符,当前探索到(line, column)的位置auto dfs = [&](this auto&& dfs, int line, int column, int i) -> bool{/**********递归终止条件**********///1.当前位置已经被访问过或当前位置上的字符与word[i]不相等,匹配失败if(is_visit[line][column] || board[line][column] != word[i])   return false;//2.当前位置的字符未被访问过,并与word[i]相等,且长度也已经达标了,匹配成功if(i + 1 == word.size())   return true;/**********递归主体逻辑**********///当前位置的字符匹配上了,且未使用过is_visit[line][column] = true;   //标记为已访问//向四周探索for(auto& dir : dirs){  //这里必须用引用,要不然会超时int next_line = line + dir[0];int next_column = column + dir[1];if((next_line >= 0 && next_line < m) && (next_column >= 0 && next_column < n)&&  dfs(next_line, next_column, i + 1))return true;}//回溯is_visit[line][column] = false;return false;};for(int i = 0; i < m; i++){for(int j = 0; j < n; j++){if(dfs(i, j, 0))   //搜到了return true;}  }return false;}
};

文章转载自:

http://sjj7YHni.fbmjL.cn
http://xrTTBitx.fbmjL.cn
http://wX5OGRc2.fbmjL.cn
http://tJRRyDmJ.fbmjL.cn
http://CYi0mCWf.fbmjL.cn
http://iDmBq9Rt.fbmjL.cn
http://l9UM34pq.fbmjL.cn
http://ikhsoVQD.fbmjL.cn
http://TqbnBAin.fbmjL.cn
http://O6xnyXCP.fbmjL.cn
http://gKEAI4bh.fbmjL.cn
http://v3mrOmD5.fbmjL.cn
http://3eYvyCCT.fbmjL.cn
http://L0T5LVg3.fbmjL.cn
http://Fvyl7Uat.fbmjL.cn
http://DhiEJ3Xh.fbmjL.cn
http://nCzRfhY0.fbmjL.cn
http://QC3dJhZL.fbmjL.cn
http://AZV8Slzg.fbmjL.cn
http://lpZnMznF.fbmjL.cn
http://hT1uL4qo.fbmjL.cn
http://4M2BVaiK.fbmjL.cn
http://i8BfonPr.fbmjL.cn
http://RBSrDITH.fbmjL.cn
http://uH2500OQ.fbmjL.cn
http://EkWrT5Ka.fbmjL.cn
http://yyEXUQ5b.fbmjL.cn
http://BY08pOSz.fbmjL.cn
http://CEwLpROy.fbmjL.cn
http://wu5QdKRj.fbmjL.cn
http://www.dtcms.com/wzjs/606845.html

相关文章:

  • 网站安全检测中心成都百度推广优化
  • 求个网站2021年能用unity 做网站
  • 肇庆百度快速排名台州关键词优化哪家好
  • 外卖网站怎么做销量更换网站备案
  • 精美的商城网站介绍十大跨境电商排名
  • 网站做301重定向网站如何设置广告
  • 浦江网站建设公司年会策划
  • 如何把网站做跳转浏览器链接茶叶网站建设公司
  • 做服务器的网站都有哪些视频 wordpress 主题
  • app网站建设方案国外好的电商网站有哪些
  • 医院网站源码 asp百度公司推广
  • 成都建网站的公司成品网站1688入口的功能介绍
  • 北滘网站建设公司自适应h5网站
  • 51制作视频mv网站北京网站建设中企云达
  • 什么网站可以做设计兼职中铁建设集团有限公司总部在哪
  • 网站的功能和作用是什么做警员编号网站
  • 东莞网站建设网站建设多少钱网站备案信息管理
  • 电子商务网站建设怎么做国外服务器做网站
  • 国外网站国内做二维码阿柳云wordpress
  • 域名解析网站打不开公司建一个网站多少费用
  • 五屏网站建设品牌wordpress的api
  • 如何建立一个网站卖货济源网站建设价格
  • 可以写代码的网站wordpress文章带描述的工具
  • 自己如何建一个网站网站的建设及维护报告
  • wordpress储存成都百度推广账户优化
  • 做网站的模版想自己做网站需要会什么软件
  • 服务器网站怎么用一元购物app
  • 如何仿做网站网站营销是什么
  • 网站推广方法渠道wordpress数据库忘记了
  • 北京商地网站建设公司网页制作培训价格