leetcode_主题空间
一、题目


二、算法
class Solution { public: int ans=0,f=1; void dfs(vector<string>& grid,int i,int j,char c){ //碰到走廊,f标记为0 if(i<0||i>=grid.size()||j<0||j>=grid[0].length()||grid[i][j]=='0'){f=0;return;} //不是同一个主题空间或者已经成为别的主题空间 if(grid[i][j]!=c || grid[i][j]=='6')return; grid[i][j]='6';//遍历过的点都记作'6' ans++; //四个方向的深搜 dfs(grid,i+1,j,c); dfs(grid,i-1,j,c); dfs(grid,i,j+1,c); dfs(grid,i,j-1,c); } int largestArea(vector<string>& grid) { int n=grid.size(),m=grid[0].length(),ma=0; for(int i=1;i<n-1;++i) for(int j=1;j<m-1;++j){ //初始化 ans=0;f=1; dfs(grid,i,j,grid[i][j]); if(f)ma=max(ans,ma); } return ma; } };
三、分析
主要是通过递归搜索字符函数,结果如下,上面的代码是使用别人代码的结果。

但是具体的改进我也不知道怎么做。
纵一苇之所如,临万顷之茫然。

浙公网安备 33010602011771号