【动态规划】求二维数组从左下到右上的最优路径

该博客介绍了如何使用动态规划解决二维数组从左下角到右上角路径和最大的问题。通过设置初始条件和迭代过程,计算出dp数组以找到最优路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.求二维数组从左下到右上的最优路径,使得路径和最大,并且只能向上或向下走。
解析:求最短路径,路径和最优等都可以用动态规划做。
dp[i][j]表示到i,j坐标的最优路径。
第一,确定初始条件。即向上向左的最优路径确定
dp[i,0] = dp[i-1,0] + arr[i][0] where j =0
dp[0,j] = dp[0,j-1] + arr[0][j] where i =0
第二,根据初始条件,迭代出整个数组。
dp[i,j] = max{dp[i+1,j],dp[i,j-1]} + arr[i][j]
第三,dp[0,m]即是最优路径的值。

//求从二维数组左下到右上的路径,最大值。
//只可以向右向上走,二维数组值已给定。
int getmax(int a[][5],int n)
{
    int i,j,k,t;
    int tmp,rtn;
    int** ta = (int**)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值