博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数字三角形
阅读量:6245 次
发布时间:2019-06-22

本文共 967 字,大约阅读时间需要 3 分钟。

普通递归算法:

int NumberTrangle(int trang[][100], int i, int j, int numOfLine)    //numOfLine即三角形的高度

{
    if(i == numOfLine)
        return trang[i][j];    最低层的不用计算。
    else
        return trang[i][j] + std::max(NumberTrangle(trang, i+1, j, numOfLine), NumberTrangle(trang, i+1, j+1, numOfLine));
}

 

自底向上递推算法:

int NumberTrangle(int trang[][100], int util[][100], int height)

{
    for(int j = 0; j < height; ++j)
    {
        util[height - 1][j] = trang[height - 1][j];
    }
    for(int i = height - 2; i >= 0; --i)
    {
        for(int j = 0; j <= i; ++j)
        {
            util[i][j] = trang[i][j] + std::max(util[i+1][j], util[i+1][j+1]);
        }
    }
    return util[0][0];
}

记忆化算法:

int NumberTrangle(int trang[][100], int util[][100], int i, int j, int numOfLine)

{
    if(util[i][j] > 0)
        return util[i][j];
    if(i == numOfLine)
        return util[i][j] = trang[i][j];
    else
        return util[i][j] = trang[i][j] + std::max(NumberTrangle(trang, util, i+1, j, numOfLine), NumberTrangle(trang, util, i+1, j+1, numOfLine));
}

 

转载于:https://www.cnblogs.com/lverson/p/4106626.html

你可能感兴趣的文章
经过几天的推敲学习
查看>>
Python Day30
查看>>
WebRequest对DNS说:没有你我依然可以
查看>>
jvm垃圾收集小记
查看>>
MonthCalendar的mousedown方法选择日期
查看>>
用于pytorch的H5Dataset接口(类比TensorDataset接口)
查看>>
Python-入门第三篇
查看>>
解决Cannot change version of project facet Dynamic Web M
查看>>
mysql备份与恢复
查看>>
hadoop实例sort
查看>>
jstat (JVM统计监测工具)
查看>>
git 免密码push,pull
查看>>
js懒加载
查看>>
计算某时间是年中第几周。
查看>>
【论文阅读】A mixed-scale dense convolutional neural network for image analysis
查看>>
用正则表达式匹配网址URL中最后一个反斜杠/后面的内容
查看>>
Define custom @Required-style annotation in Spring
查看>>
General: Know How to Use InetAddress
查看>>
php 克隆和引用类
查看>>
Linux编程之变量
查看>>