标签:i+1 show input 数组 number 动态 end step span
在学习动态规划前 , 先补充些有关递归的知识 。
所谓的递归函数 就是调用自身函数的过程 ,因此是用栈来存储的 。
递归函数的最终返回值 就是第一次调用函数的返回值 。
在写函数递归时 , 要特别注意的两点 :
一是 递归 递归 , 一定有让它有能让他回归的条件 。
二是 写递归时 , 要找到一个最简单的关系式 , 方便写递归函数 。
话不多说 , 进入正题 , 先看这道题 。( poj 1163 )
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
(Figure 1)
Input
Output
Sample Input
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
Sample Output
30
题目的意思是 : 从上到下 ,每次可以走左下角 或者右下角 , 问最大和是多少 。
我们可以用一个二维数组去存放此三角形 。
用 pre[i][j] 表示 第 i 行 第 j 个数 ,每次移动可以有两种选择 , 选择向左下走 , 即 pre[i+1][j] , 或者选择向 右下走 , 即 pre[i+1][j+1] , 若走到最后一行时 ,则返回 pre[i][j] , 不在调用 。
标签:i+1 show input 数组 number 动态 end step span
原文地址:http://www.cnblogs.com/ccut-ry/p/7327226.html