双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

算法设计与分析第三章作业

2301_80143653 2301_80143653 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

1. 请写出作业“算法第三章3”中题目“7-4 最低通行费”的动态规划方程

( 1 )状态表示:使用一个二维数组dp [ i ] [ j ]来表示从左上角( 0,0 )到达网格中( i,j )位置的最小费用。

( 2 )状态方程:易知每次只需往下或往右走通行费最少,故易得dp [ i ][ j ] = min ( dp [ i-1 ] [ j ] , dp [ i ] [ j-1 ] ) + cost [ i ] [ j ] ,其中 cost [ i ] [ j ] 是[ i , j ]位置的费用。

( 3 )边界条件:起点dp [ 0 ] [ 0 ]的费用为 cost[ 0 ] [ 0 ];

                        第一行和第一列需要根据前一个位置的累计通行费加此处通行费来初始化,比如第一行: dp [ 0 ][ j ] = dp [ 0 ] [ j-1 ]  + cost [ 0 ] [ j ] ,j>=1;

                        其余位置根据状态方程来填充。

( 4 )时间、空间复杂度分析:时间复杂度:由于每个网格点都需要计算一次,且每个点需要从其上方、左方获取值,所以时间复杂度为O ( N ^ 2 )

                                              空间复杂度:需要一个NxN的二维数组来存储到达每个点的最小费用,所以空间复杂度为O ( N ^ 2 )。

2. 结合本章的学习,总结你对动态规划法的体会和思考

动态规划问题一般有最优子结构,这让我们可以通过把整个问题分解成多个子问题、解决子问题、找到子问题的最优解,得到整个问题的最优解。

...全文
评论
收藏 已收藏
分享
返回顶部
2301_80143653
gdufscs 434 成员 1,011 内容