题解 | #走格子#
走格子
http://www.nowcoder.com/practice/365493766c514d0da0cd774d3d40fd49
class Flood { public:
int MAX=1000;
int floodFill(vector<vector<int> > map, int n, int m)
{
vector<vector<int>>dp(n,vector<int>(m));
dp[0][0]=0;
for(int i=1;i<n;i++)
{
if(map[i][0]==0)
{
dp[i][0]=dp[i-1][0]+1;
}
else
{
dp[i][0]=MAX;
}
}
for(int j=1;j<m;j++)
{
if(map[0][j]==0)
{
dp[0][j]=dp[0][j-1]+1;
}
else
{
dp[0][j]=MAX;
}
}
for(int i=1;i<n;i++)
{
for(int j=1;j<m;j++)
{
dp[i][j]=min(dp[i-1][j], dp[i][j-1])+1;
}
}
return dp[n-1][m-1];
}
};