博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode-79 Word Search
阅读量:4121 次
发布时间:2019-05-25

本文共 1191 字,大约阅读时间需要 3 分钟。

解题思路:

* BFS + DFS

* 每次找一个字符,使用BFS(上,下,左,右)

* 第一个字符的位置通过遍历整个board得到

* 从第i个找第i+1个只能查找周围没有被使用过的,用DFS

* 用数组标记每个位置是否已被使用

class Solution {public:       bool exist(vector
>& board, string word) { row = board.size(); if(row == 0) return false; col = board[0].size(); vector
> used(row,vector
(col,false)); found = false; for(int i = 0; i < row; i++){ //遇到一个很奇葩的问题,当把i,j定义在for外面的时候,一直wrong answer for(int j = 0; j < col; j++){ helper(board,used,word,0,i,j); } } return found; } void helper(vector
>& board,vector
>& used,string& word,int index,int i,int j){ if(found || (word[index] != board[i][j]) ){ return; } if(index == (word.size() - 1)){ found = true; return; } used[i][j] = true; if( (i > 0) && !used[i-1][j]) helper(board,used,word,index+1,i-1,j); if( (i < row - 1) && !used[i+1][j]) helper(board,used,word,index+1,i+1,j); if( (j > 0) && !used[i][j-1]) helper(board,used,word,index+1,i,j-1); if( (j < col -1) && !used[i][j+1] ) helper(board,used,word,index+1,i,j+1); used[i][j] = false; return; } private: bool found; int row,col;};

转载地址:http://tmspi.baihongyu.com/

你可能感兴趣的文章
javscript 去除文字换行符
查看>>
【转载】斯托尔茨定理的证明
查看>>
list用法(用到了再补充)
查看>>
bzoj 3771: Triple【生成函数+FFT+容斥原理】
查看>>
关于npm --save还是-save的横杠数量的细节的记录
查看>>
【noip模拟题】数列
查看>>
一周学会linux实战笔记
查看>>
Hadoop生产集群的监视——计数器
查看>>
为程序集赋予强名称并使用
查看>>
Python load C library
查看>>
理解KMP算法
查看>>
我的软件工程课目标
查看>>
洛谷P1552 [APIO2012] 派遣 [左偏树,树形DP]
查看>>
JSP动作指令
查看>>
故障处理-ORA-00376/ORA-01110
查看>>
人生苦短,我用Python(目录)
查看>>
Robotium-无源码测试
查看>>
深度学习面试题10:二维卷积(Full卷积、Same卷积、Valid卷积、带深度的二维卷积)...
查看>>
Django REST framweork
查看>>
Bayes++ Library入门学习之熟悉UKF相关类
查看>>