码迷,mamicode.com
首页 > 其他好文 > 详细

第3章实践报告

时间:2018-11-11 23:22:49      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:报告   空间复杂度   思路   ++   end   心得体会   最大   color   决定   

  1. 实践题目:求经过数字三角形的最大和

  2. 问题描述:从三角形的顶端往下走,求经过数字之和最大的一条路径。

  3. 算法描述:把第0行第0列的值全都赋值为零,这样三角形的数a[i][j]就都可以用统一的式子表示了,最后在第n行的时候经过比较得到答案。

    for(int i=0;i<=n;i++)a[0][i]=0;
        for(int i=0;i<=n;i++)a[i][0]=0;
        for(int i=1;i<=n;i++){
             for(int j=1;j<=i;j++){
                 cin>>a[i][j]; 
            }
         }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=i;j++){
                a[i][j]+=max(a[i-1][j-1],a[i-1][j]); 
            }
        }
        int ans=0;
        for(int i=1;i<=n;i++){
            ans=max(ans,a[n][i]);
        }
        cout<<ans<<endl; 
  4. 算法时间及空间复杂度分析:算法中使用了双重循环,所以该算法的时间复杂度是o(n2),用到了一个n×n的表,所以空间复杂度是n2。

  5. 心得体会:这道编程题最开始是想从下往上写,但是思路被卡住了;经过讨论之后,决定是从上往下写才得到正解。以后开始编程之前一定要先把思路确定好,一种行不通要懂得变换。

第3章实践报告

标签:报告   空间复杂度   思路   ++   end   心得体会   最大   color   决定   

原文地址:https://www.cnblogs.com/Z20171003329/p/9943402.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!