typedef struct pos
{
int x;
int y;
bool operator < (const pos &o) const
{
if((x==o.x)&&(y==o.y))
return false;
return true;
}
}pos;
pair<map<pos,int>::iterator, bool> ret;
static map<pos,int>posMap;
void fss(vector<vector<int>>& image,int x,int y,int num)
{
if(x<0)
return;
if(x>=image.size())
return;
if(y<0)
return;
if(y>=image[0].size())
return;
pos p;
p.x=x;
p.y=y;
ret= posMap.insert(pair<pos,int>(p,1));
if(!ret.second)
{
return;
}
if(image[x][y]==num)
{
fss(image,x-1,y,num);//左递归
fss(image,x+1,y,num);//右递归
fss(image,x,y-1,num);//上递归
fss(image,x,y+1,num);//左递归
}
}