您的位置:首页 > 其它

动态规划---三角矩阵最小路径

2016-08-21 22:03 302 查看
形如一下三角形,请给出从第一行到最后一行路径的最小值(每次只能从左下或者右下的路径)这是leetcode上的题目。在此做一个总结!!!

2

3 4

6 5 7

4 1 8 3

动态规划相关视频:http://v.youku.com/v_show/id_XODkxMDg0OTUy.html

9936
源程序如下:

#include<iostream>

#include<algorithm>

#include<vector>

using namespace std;

int main()

{

 int n;

 //int *dp;

 vector<int> dp;

 cin>>n;

 vector<vector<int> >triangle(100,vector<int>(100,0));//100*100的二维数数组

 //int triangle[100][100]={0};

 int i=1;

 int j=1;

 for(i=1;i<=n;i++)

 {

  for(j=1;j<=i;j++)

  {

   cin>>triangle[i][j];

  }

 }

 cout<<triangle[4][4]<<endl;

 dp=triangle
;   //dp指向三角矩阵的第n行

 for(i=n-1;i>=1;i--)

 {

  for(j=1;j<=i;j++)

   dp[j]=min(dp[j+1],dp[j])+triangle[i][j];//dp[j]表示第i行j列的元素开始到最底层的路径(显然只有两条路--第i+1行j列/j+1列,然后再加上第i行j列的元素)

 }

 cout<<dp[1]<<endl;

 return 0;

 

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: