算法第三章作业——动态规划

1.对动态规划算法的理解

1).具有最优子结构和重叠子问题

2).后面的数据会对前面的结果产生影响

3).关键是找到正确的递归方程


 

2.列出编程题1、2的递归方程

编程题1

    for (int i = 1 ; i < n ; i ++ ) {
        dp[i] = 1;
        for (int j = 0 ; j <= i ; j ++ ) {
            if (num[j] < num[i] && dp[j] > dp[i] - 1) {
                dp[i] = dp[i] + 1;
            }
        }    
    }

编程题2

    for (int r = 2 ; r <= n ; r ++ ) {
        for (int i = 1 ; i <= n - r + 1 ; i ++ ) {
            int j = i + r - 1;
            for (int k = i ; k <= j ; k ++ ) {
                int t = price[i][k] + price[k][j];
                if (t < price[i][j])
                    price[i][j] = t;
            }
        }
    }

  


3.说明结对编程情况

有机会了解别人的编程习惯,风格和想法,同时对比自己,能够相互学习

posted @ 2019-11-03 21:51  yingni  阅读(192)  评论(0编辑  收藏  举报