题目链接:http://lx.lanqiao.cn/problem.page?gpid=T312
思路:
一开始写错了,写的是从顶至底,每次选择两个底数中较大者累加。发现错误之后再就想到列举所有情况的和再取最大值,然鹅这运算量也太大了,运行时间也会超的。没思路只好百度一下咯,艾西我怎么没想到从底至顶,之前的错误代码都不用怎么修改,换个思路就柳暗花明又一村了…所以说脑子是个好东西,可惜我没有啊…
具体解法如下:
从倒数第二行开始,将每个数与其左右两个底数中的较大值相加,同理再倒数第三行第四行…最后最顶层的值就是总和最大值。
注意:
- 二维数组,方便检索行和列 ( j<=i下三角)
- 取两数中的最大值可直接用max(a,b)
- 脑子是个好东西,可惜我没有啊…