Every day a leetcode
题目来源:120. 三角形最小路径和
解法1:动态规划![请添加图片描述](https://i-blog.csdnimg.cn/blog_migrate/b54cc0b6adbdb0c688b2dcdef8254734.jpeg)
代码:
int min(int a,int b)
{
return a>b?b:a;
}
int minimumTotal(int** triangle, int triangleSize, int* triangleColSize){
int n=triangleSize;
int dp[n][n];
memset(dp,0,sizeof(dp));
// dp初始化
dp[0][0]=triangle[0][0];
// 状态转移方程
for(int i=1;i<n;i++)
{
dp[i][0]=dp[i-1][0]+triangle[i][0];
for (int j=1;j<i;j++)
{
dp[i][j]=min(dp[i-1][j-1],dp[i-1][j])+triangle[i][j];
}
dp[i][i]=dp[i-1][i-1]+triangle[i][i];
}
int ans=dp[n-1][0];
for(int i=1;i<n;i++)
{
if(dp[n-1][i]<ans) ans=dp[n-1][i];
}
return ans;
}
结果: