美文网首页
三、动态规划(1)-数学三角形

三、动态规划(1)-数学三角形

作者: 安东可 | 来源:发表于2017-08-10 10:46 被阅读17次

数学三角形


将所有的maxSum初始化为-1,然后递归计算然后将值保留其中,如果已经计算过就直接返回,否则的话就计算下面的返回最大值。


另一种思路:

从下往上计算,将每一层计算的值保留在数组中,则可以得到最终的值。只需一遍计算。最下面一层不用计算。

#include <iostream>
#include<algorithm>

using namespace std;

#define MAX 101

int D[MAX][MAX];
int  n;
int * maxSum;

int main(){
    int i, j;
    cout << "输入三角形行数:";
    cin >> n;
    cout << endl;
    cout << "输入三角形:" << endl;
    for (i = 1; i <= n; i++)
    {
        for (j = 1; j <= i; ++j){
            cin >> D[i][j];
        }
    }
    maxSum = D[n];
    for (i = n - 1; i >= 1; --i)
    {
        for (j = 1; j <= i; ++j)
            maxSum[j] = max(maxSum[j], maxSum[j + 1]) + D[i][j];
    }

    for (i = 1; i <= n; ++i)
        {
            for (j = 1; j <= i; ++j)
                cout << D[i][j] << " ";
            cout << endl;
        }
    cout << "maxSum(1,1): " << maxSum[1] << endl;
}

【总结】:

相关文章

  • 三、动态规划(1)-数学三角形

    数学三角形 将所有的maxSum初始化为-1,然后递归计算然后将值保留其中,如果已经计算过就直接返回,否则的话就计...

  • 动态规划 2020-03-17

    动态规划 动态规划重要的是:判断状态,状态转移方程 数字三角形 问题描述给定一个数字三角形,找到从顶部到底部的最小...

  • 动态规划合集

    动态规划合集 前言:把学习到的「动态规划模型」在这里记录下来 0X00 总结 数字三角形模型 最长上升子序列模型 ...

  • 动态规划-数字三角形1

    题目要求 在上面的数字三角形中寻找一条从顶部到底边的路径(注意是底边),使得路径上经过的数字之和最大.路径上的每一...

  • LeetCode-120-三角形的最小路径和

    LeetCode-120-三角形的最小路径和 动态规划介绍 题目 给定一个三角形,找出自顶向下的最小路径和。每一步...

  • 动态规划01

    动态规划作为暑期集训第一天的内容,相对简单一些,然而动态规划后面也有几道很难的题目,我们以第一道数字三角形开始:题...

  • 一文弄懂动态规划(DP Dynamic Programming)

    动态规划 参考链接 漫画算法,什么是动态规划? DP 动态规划是一种分阶段求解决策问题的数学思想 题目一 问:下楼...

  • 蓝桥杯动态规划练习题--数字三角形

    一道蓝桥杯的动态规划练习题: 历届试题 数字三角形[http://lx.lanqiao.cn/problem.pa...

  • 杂项

    DTW的数学公式是一个动态规划的递推式 动态规划的过程也就是填表格的过程,例如为了计算表格在S(1,1)处的值 就...

  • Algorithm进阶计划 -- 动态规划(上)

    动态规划动态规划的基本原理动态规划的运用 1. 动态规划的基本原理 动态规划(Dynamic Programmi...

网友评论

      本文标题:三、动态规划(1)-数学三角形

      本文链接:https://www.haomeiwen.com/subject/rvvdhxtx.html