动态规划
int minPathSum(int** grid, int gridSize, int* gridColSize){
int row=gridSize,columns=gridColSize[0];
int dp[row][columns];
int i,j;
dp[0][0]=grid[0][0];
for(i=1;i<row;i++){
dp[i][0]=grid[i][0]+dp[i-1][0];
}
for(i=1;i<columns;i++){
dp[0][i]=grid[0][i]+dp[0][i-1];
}
for(i=1;i<row;i++){
for(j=1;j<columns;j++){
dp[i][j]=fmin(dp[i-1][j],dp[i][j-1])+grid[i][j];
}
}
return dp[row-1][columns-1];
}