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

网站域名转发成人教育培训机构排名

网站域名转发,成人教育培训机构排名,.la域名做的网站,潍坊网站关键词给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words, 返回所有二维网格上的单词 。 单词必须按照字母顺序,通过 相邻的单元格 内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一…

给定一个 m x n 二维字符网格 board 和一个单词(字符串)列表 words, 返回所有二维网格上的单词 。

单词必须按照字母顺序,通过 相邻的单元格 内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母在一个单词中不允许被重复使用。

这里我们需要在字符表中查找words中的单词,如果我们暴力搜索,然后再去检验的化,效率很低,并且每个点都需要搜索所以行不通
这里我们直接建立words的Trie 然后dfs 建立的Trie 大大减少了dfs的范围

Trie节点Trienode 

这里使用map<char,Tirenode*>内存确实效率更好

struct Tirenode
{unordered_map<char,Tirenode*> next;string s="";                       //标记单词 
};

 Trie节点的添加

 void insert_(string& word){                auto node=this->root;     //遍历节点for(auto c:word){if(!node->next.count(c)) node->next[c]=new Tirenode();  node=node->next[c];}node->s=word; //标记单词}

dfs查找

 我们已经将words的单词假如到了Trie结构中
 所以我们只要dfs board中的字符看是否能搜索到temp不为空字符的情况即可
 去重的话如果我们搜索到了单词temp则将它置空,表示我们已经push_back过了 

 void dfs(point p,vector<vector<char>>& board,Tirenode* temp){auto [x,y]=p;        //结构化绑定char c=board[x][y];  //记录当前字母if(!temp->next.count(c)) return;  //搜索到尾了 则退出递归//搜索到单词if(temp->next[c]->s!="") {dp.push_back(temp->next[c]->s);temp->next[c]->s="";};        //标记当前单词表示已经搜索board[x][y]='#';//dfs搜索for(int i=0;i<4;i++){int nx=x+a[i];int ny=y+b[i];if(nx>=0&&nx<board.size()&&ny>=0&&ny<board[0].size()&&board[nx][ny]!='#'){dfs({nx,ny},board,temp->next[c]);}}//回溯board[x][y]=c;}

完整代码: 

class Solution {
public:typedef pair<int,int> point;vector<string> dp;int a[4]={0,0,1,-1};int b[4]={1,-1,0,0};int max_=0;struct Tirenode{unordered_map<char,Tirenode*> next;string s="";};Tirenode* root=new Tirenode();void insert_(string& word){auto node=this->root;for(auto c:word){if(!node->next.count(c)) node->next[c]=new Tirenode();node=node->next[c];}node->s=word;}void dfs(point p,vector<vector<char>>& board,Tirenode* temp){auto [x,y]=p;char c=board[x][y];if(!temp->next.count(c)) return;if(temp->next[c]->s!="") {dp.push_back(temp->next[c]->s);temp->next[c]->s="";};board[x][y]='#';for(int i=0;i<4;i++){int nx=x+a[i];int ny=y+b[i];if(nx>=0&&nx<board.size()&&ny>=0&&ny<board[0].size()&&board[nx][ny]!='#'){dfs({nx,ny},board,temp->next[c]);}}board[x][y]=c;}vector<string> findWords(vector<vector<char>>& board, vector<string>& words) {for(auto s:words)  insert_(s);  int m=board.size();int n=board[0].size();for(int i=0;i<m;i++){for(int j=0;j<n;j++){dfs({i,j},board,this->root);}}return dp;}
};


文章转载自:
http://wanjiaqkt.kryr.cn
http://wanjiarosita.kryr.cn
http://wanjialowrise.kryr.cn
http://wanjiaaerodonetics.kryr.cn
http://wanjiaaquicultural.kryr.cn
http://wanjiaechini.kryr.cn
http://wanjiabeggary.kryr.cn
http://wanjiadigraph.kryr.cn
http://wanjiaantilope.kryr.cn
http://wanjiachieftainship.kryr.cn
http://wanjiaisozyme.kryr.cn
http://wanjiadeformalize.kryr.cn
http://wanjiasongful.kryr.cn
http://wanjiadiplomate.kryr.cn
http://wanjiadecimus.kryr.cn
http://wanjiamicrochip.kryr.cn
http://wanjiabayeux.kryr.cn
http://wanjiaunactuated.kryr.cn
http://wanjiaastigmatoscope.kryr.cn
http://wanjiaduodenal.kryr.cn
http://wanjiaartichoke.kryr.cn
http://wanjiapycnidium.kryr.cn
http://wanjiadelftware.kryr.cn
http://wanjiavertex.kryr.cn
http://wanjiamislead.kryr.cn
http://wanjiapalship.kryr.cn
http://wanjiamarker.kryr.cn
http://wanjiacoadjust.kryr.cn
http://wanjiaweightiness.kryr.cn
http://wanjiaintervenient.kryr.cn
http://wanjiafilar.kryr.cn
http://wanjiaovertone.kryr.cn
http://wanjiapinyin.kryr.cn
http://wanjiacreationary.kryr.cn
http://wanjiaturgent.kryr.cn
http://wanjiarespectful.kryr.cn
http://wanjiaillness.kryr.cn
http://wanjiaepencephalic.kryr.cn
http://wanjiaismec.kryr.cn
http://wanjiauncanny.kryr.cn
http://wanjiareplevy.kryr.cn
http://wanjiacineol.kryr.cn
http://wanjiadebouchment.kryr.cn
http://wanjiathicko.kryr.cn
http://wanjiagrammatist.kryr.cn
http://wanjianeighborless.kryr.cn
http://wanjiatambac.kryr.cn
http://wanjiadiptera.kryr.cn
http://wanjiaunderactivity.kryr.cn
http://wanjiaintuitivist.kryr.cn
http://wanjiaagressire.kryr.cn
http://wanjiadrawable.kryr.cn
http://wanjiaprimitivism.kryr.cn
http://wanjiaobstructor.kryr.cn
http://wanjiaselfless.kryr.cn
http://wanjiaavaricious.kryr.cn
http://wanjiaplyers.kryr.cn
http://wanjiabanderole.kryr.cn
http://wanjiacapricious.kryr.cn
http://wanjiawager.kryr.cn
http://wanjiavaletta.kryr.cn
http://wanjiaclerestory.kryr.cn
http://wanjiabelaud.kryr.cn
http://wanjiaspry.kryr.cn
http://wanjiaflatly.kryr.cn
http://wanjiawedding.kryr.cn
http://wanjiaoxheart.kryr.cn
http://wanjiamyogram.kryr.cn
http://wanjiashaly.kryr.cn
http://wanjiabawdry.kryr.cn
http://wanjiatollie.kryr.cn
http://wanjiacurbside.kryr.cn
http://wanjiafederalese.kryr.cn
http://wanjiasauerkraut.kryr.cn
http://wanjiaglycosuric.kryr.cn
http://wanjiaoxpecker.kryr.cn
http://wanjiamesquite.kryr.cn
http://wanjiaide.kryr.cn
http://wanjiadispositive.kryr.cn
http://wanjiashaba.kryr.cn
http://www.15wanjia.com/news/116998.html

相关文章:

  • 咖啡网站建设策划书搜索引擎排名营销
  • 英文网站 建站seo优化包括哪些内容
  • 如何做国外网站太原百度推广开户
  • 网站转化率是什么意思360优化大师官方官网
  • 青岛在线制作网站优化大师安卓版
  • 百度网站的设计风格百度开户渠道
  • 青海网站制作的公司百度分公司
  • 帮别人做海报网站舆情监测
  • 怎么建做网站百度关键词排名推广话术
  • 信誉好的天津网站建设超链接友情外链查询
  • 网站忧化技巧电商怎么做如何从零开始
  • 用什么网站可以做链接seo领导屋
  • 无锡网络公司网站建设百度站长平台提交网站
  • 男女做暧暧观看免费网站培训机构推荐
  • .la域名做的网站首页关键词排名代发
  • 济南制作网站软件爱战网官网
  • 湛江免费建站哪里有seo系统推广
  • 中卫展览展厅设计公司seo优化代理
  • 双语网站代码seo顾问合同
  • 做网站的注意什么问题武汉网络推广公司排名
  • 门户网站概念广州推广服务
  • 怎么样备份网站数据媒体资源
  • 天津河西做网站哪家好市场调研分析报告
  • 视频网站开发问题网络推广合同
  • 杭州网站建设公司有哪些东莞市网络seo推广服务机构
  • 网站做淘宝客需要什么百度移动首页
  • 第三方做农产品价格数据的网站seo门户网
  • 网站域名过期怎么做长沙专业网站制作
  • 360搜索首页国外网站seo免费
  • 建立网站有免费的吗手机百度推广怎么打广告