算法第三章实践报告

题目:

 

 

 

 

 

 算法描述:

 

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int main() {
 5     int n;
 6     cin >> n;
 7     int a[n][n];
 8     int m[n][n];
 9     for(int i = 0; i < n; i++) {
10         for(int j = 0; j <= i; j++) {
11             cin >> a[i][j];
12         }
13     }
14     for(int j = 0; j < n; j++) {
15         m[n-1][j] = a[n-1][j];
16     }
17     for(int i = n - 2; i >= 0; i--){
18         for(int j = 0; j <= i; j++) {
19             if(m[i+1][j]>m[i+1][j+1]){
20                 m[i][j] = m[i+1][j] + a[i][j];
21             } else {
22                 m[i][j] = m[i+1][j+1] + a[i][j];
23             }
24         }
25     }
26     cout << m[0][0];
27     
28 } 
View Code

  时间复杂度:应为存在两个for循环语句,所以为O(n*n)

  空间复杂度:申请两个数组,为O(n)

心得体会:

  对填表的运用不纯熟,理解不够透彻,总是会出现不知道下一步该干什么的情况,和队友沟通上表述不清晰。要加强理解,加深记忆,多与队友沟通。

posted @ 2019-10-21 20:36  小懒瓜子  阅读(99)  评论(0编辑  收藏  举报