Skip to content

Commit 7e5bf9b

Browse files
committed
Runtime: 465 ms (Top 65.47%) | Memory: 8.2 MB (Top 18.19%)
1 parent 39f1864 commit 7e5bf9b

File tree

1 file changed

+44
-43
lines changed

1 file changed

+44
-43
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,48 @@
1+
// Runtime: 465 ms (Top 65.47%) | Memory: 8.2 MB (Top 18.19%)
12
class Solution {
23
public:
3-
bool flag=false;
4-
void exist(int k,int i ,int j,string& word,vector<vector<char>>& board,vector<vector<int>>& vis,int n,int m){
5-
if(k==word.size()){
6-
flag=true;
7-
return;
8-
}
9-
// Down
10-
if(!flag && i+1<m && !vis[i+1][j] && board[i+1][j]==word[k]){
11-
vis[i][j]=1;
12-
exist(k+1,i+1,j,word,board,vis,n,m);
13-
vis[i][j]=0;
14-
}
15-
// Left
16-
if(!flag && j-1>=0 && !vis[i][j-1] && board[i][j-1]==word[k]){
17-
vis[i][j]=1;
18-
exist(k+1,i,j-1,word,board,vis,n,m);
19-
vis[i][j]=0;
20-
}
21-
// Right
22-
if(!flag && j+1<n && !vis[i][j+1] && board[i][j+1]==word[k]){
23-
vis[i][j]=1;
24-
exist(k+1,i,j+1,word,board,vis,n,m);
25-
vis[i][j]=0;
26-
}
27-
// up
28-
if(!flag && i-1>=0 && !vis[i-1][j] && board[i-1][j]==word[k]){
29-
vis[i][j]=1;
30-
exist(k+1,i-1,j,word,board,vis,n,m);
31-
vis[i][j]=0;
32-
}
33-
}
4+
bool flag=false;
5+
void exist(int k,int i ,int j,string& word,vector<vector<char>>& board,vector<vector<int>>& vis,int n,int m){
6+
if(k==word.size()){
7+
flag=true;
8+
return;
9+
}
10+
// Down
11+
if(!flag && i+1<m && !vis[i+1][j] && board[i+1][j]==word[k]){
12+
vis[i][j]=1;
13+
exist(k+1,i+1,j,word,board,vis,n,m);
14+
vis[i][j]=0;
15+
}
16+
// Left
17+
if(!flag && j-1>=0 && !vis[i][j-1] && board[i][j-1]==word[k]){
18+
vis[i][j]=1;
19+
exist(k+1,i,j-1,word,board,vis,n,m);
20+
vis[i][j]=0;
21+
}
22+
// Right
23+
if(!flag && j+1<n && !vis[i][j+1] && board[i][j+1]==word[k]){
24+
vis[i][j]=1;
25+
exist(k+1,i,j+1,word,board,vis,n,m);
26+
vis[i][j]=0;
27+
}
28+
// up
29+
if(!flag && i-1>=0 && !vis[i-1][j] && board[i-1][j]==word[k]){
30+
vis[i][j]=1;
31+
exist(k+1,i-1,j,word,board,vis,n,m);
32+
vis[i][j]=0;
33+
}
34+
}
3435

35-
bool exist(vector<vector<char>>& board, string word) {
36-
int m = board.size();
37-
int n = board[0].size();
38-
vector<vector<int>> vis(m,vector<int>(n,0));
39-
for(int i=0;i<m;i++){
40-
for(int j=0;j<n;j++){
41-
if(word[0]==board[i][j]) exist(1,i,j,word,board,vis,n,m);
42-
if(flag) return flag;
43-
}
44-
}
45-
return false;
46-
}
36+
bool exist(vector<vector<char>>& board, string word) {
37+
int m = board.size();
38+
int n = board[0].size();
39+
vector<vector<int>> vis(m,vector<int>(n,0));
40+
for(int i=0;i<m;i++){
41+
for(int j=0;j<n;j++){
42+
if(word[0]==board[i][j]) exist(1,i,j,word,board,vis,n,m);
43+
if(flag) return flag;
44+
}
45+
}
46+
return false;
47+
}
4748
};

0 commit comments

Comments
 (0)