Это неправильный метод объявления вектора вектора
vector<vector<bool>> visited(100, vector<bool>(100,false));
, получая ошибку как:
Line 5: Char 34: error: expected identifier before numeric constant
vector<vector<bool>> visited(100, vector<bool>(100,false));
я объявил ее при запуске класса решения
нижепрограмма
#include<iostream>
#include<vector>
using namespace std;
class Solution {
public:
int nr,nc;
//vector<vector<bool>> visited(1000,vector<bool>(1000,false)) ;
vector<vector<bool>> visited(100, vector<bool>(100,false));
bool dfs(vector<vector<char>>& board,string word,int i,int j,int cr){
visited[i][j]=true;
if(cr==word.length())
return true;
if(cr>word.length())
return false;
if(j+1<nc && board[i][j+1]==word[cr] && !visted[i][j+1])
return dfs(board,word,i,j+1,cr+1);
if(j-1>=0 && board[i][j-1]==word[cr] && !visited[i][j-1])
return dfs(board,word,i,j-1,cr+1);
if(i+1<nr && board[i+1][j]==word[cr] && !visited[i+1][j])
return dfs(board,word,i+1,j,cr+1);
if(i-1>=0 && board[i-1][j]==word[cr] && !visited[i-1][j])
return dfs(board,word,i-1,j,cr+1);
return false;
}
bool dfs_help(vector<vector<char>> &board,string word){
for(int i=0;i<board.size();i++){
for(int j=0;j<board[0].size();j++){
visited[i][j]=false;
}
}
}
for(int i=0;i<board.size();i++){
for(int j=0;j<board[0].size();j++){
if(board[i][j]==word[0]){
visited[i][j]=true;
if(dfs(board,word,i,j,1))
return true;
}
}
}
return false;
}
vector<string> findWords(vector<vector<char>>& board, vector<string>& words) {
nr = board.size();
nc = board[0].size();
vector<string> ans;
for(string v : words){
if(dfs_help(board,v))
ans.push_back(v);
}
sort(ans.begin(),ans.end());
return ans;
}
};
int main(){
}