代码如下:
int minPathSum(int** grid, int gridRowSize, int gridColSize) {
int flags[gridRowSize][gridColSize];
flags[0][0]=grid[0][0];
for(int n=0;n<gridRowSize;n++)
{
for(int m=0;m<gridColSize;m++)
{
if(n!=0&&m!=0)
flags[n][m]=grid[n][m]+(flags[n-1][m]>flags[n][m-1]?flags[n][m-1]:flags[n-1][m]);
else if(n==0&&m!=0)
flags[n][m]=grid[n][m]+flags[n][m-1];
else if(n!=0&&m==0)
flags[n][m]=grid[n][m]+flags[n-1][m];
else
{
}
}
}
return flags[gridRowSize-1][gridColSize-1];
}
有时候就要避免重复运算,唉。
其实能不用递归就不用递归是蛮好的思想。。