码迷,mamicode.com
首页 > 其他好文 > 详细

POJ 1163 The Triangle DP题解

时间:2017-04-23 12:40:25      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:记录   class   leetcode   相同   动态   clu   return   content   ble   

寻找路径,动态规划法题解。

本题和Leetcode的triangle题目几乎相同一样的,本题要求的是找到最大路径和。

逆向思维。从底往上查找起就能够了。

由于从上往下能够扩展到非常多路径。而从下往上个点的路径是由两条缩减到一条。

这样就能够非常easy记录最大路径了。

#include <stdio.h>
const short MAX_ROW = 101;
short triangle[MAX_ROW][MAX_ROW];
short table[MAX_ROW];
short row;
inline short max(short a, short b) { return a > b ? a : b; }

short getMaxSum()
{
	for (short i = 0; i < row; i++) table[i] = triangle[row-1][i];
	for (row-=2; row >= 0; row--)
	{
		for (short i = 0; i <= row; i++)
		{
			table[i] = triangle[row][i] + max(table[i], table[i+1]);
		}
	}
	return table[0];
}

int main()
{
	while (~scanf("%d", &row))
	{
		for (short i = 0; i < row; i++)
		{
			for (short j = 0; j <= i; j++)
			{
				scanf("%d", &triangle[i][j]);
			}
		}
		printf("%d\n", getMaxSum());
	}
	return 0;
}



POJ 1163 The Triangle DP题解

标签:记录   class   leetcode   相同   动态   clu   return   content   ble   

原文地址:http://www.cnblogs.com/yxysuanfa/p/6752056.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!