package main
/**
*
* @param matrix int整型二维数组 the matrix
* @return int整型
*/
func minPathSum( matrix [][]int ) int {
if len(matrix)==0{
return 0
}
dp:=make([][]int,len(matrix))
for i:=range dp{
dp[i]=make([]int,len(matrix[0]))
}
for i:=0;i<len(matrix);i++{
for j:=0;j<len(matrix[0]);j++{
if i==0&&j==0{
dp[i][j]=matrix[i][j]
}else if i==0{
dp[i][j]=dp[i][j-1]+matrix[i][j]
}else if j==0{
dp[i][j]=dp[i-1][j]+matrix[i][j]
}else{
dp[i][j]=min(dp[i-1][j],dp[i][j-1])+matrix[i][j]
}
}
}
return dp[len(matrix)-1 ][len(matrix[0])-1]
}
func min(l,r int)int{
if l>r{
return r
}
return l
}