模拟问题,直接按每一列模拟就行;
具体代码:class Solution {
public:
vector findBall(vector>& grid) {
vectorret;
int m=grid.size();
int n=grid[0].size();
setse;
for(int i=0;i
for(int j=1;j
if(grid[i][j-1]==1&&grid[i][j]==-1){
se.insert(i*n+j-1);
se.insert(i*n+j);
}
}
}
for(int i=0;i
int row=0,col=i;
bool flag=false;
for(int j=0;j
if(col>=n||col<0||se.find(row*n+col)!=se.end()){
//如果出现了不可达地方;
flag=true;
break;
}
if(grid[row][col]==1)
col++;
else
col--;
row++;
}
if(col>=n||col<0||flag){
ret.push_back(-1);
continue;
}
ret.push_back(col);
}
return ret;
}
};



