欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > 记录学习的第十九天

记录学习的第十九天

2025/4/3 21:28:29 来源:https://blog.csdn.net/xiufeia/article/details/146931447  浏览:    关键词:记录学习的第十九天

  现在这篇是记录一下4.1的学习。今天还没开始。

这篇是关于简单的动态规划的题目,思路比较清晰类似。

 

  在这里先说一下有关动态规划的四个步骤:

1.确定子问题

2.确定dp数组的递推关系(dp数组也叫子问题数组)

3.确定求解的计算顺序

4.空间优化(初学者可以不掌握,本篇中没有涉及)

 

  接下来上第一道题,由打家劫舍引入门。

   那么,首先按步骤来,第一步:确定子问题。

这道题的大问题是一夜之间偷n间房子的最大金额。

   而现在要明确子问题,子问题是什么?我们要求的问题是可以通过子问题来得到的。

所以这道题中我们可以把范围缩小,先求k个房子的最大金额。而当k=n时就是题目所求内容了。

   现在开始求解第二步:确定子问题的递推关系。

在本题中,还是比较容易找到的。dp[k]就是dp[k-1](不打劫第k间房子)与dp[k-2]+nums[k-1](打劫第k间房子)的最大值了。

  就到了第三步:确定dp数组的计算顺序。

还是能够清晰知道是从左往右的,先计算打劫较小的房子,一直到n个房子为止。

  至此,就可以写出代码了。

 

  接下来是一道打家劫舍的拓展题。

   就是由一排过来变成了房子是围着的而已。那么可以拆开来求解(打了第一间就不打最后一间或者不打第一间),就变成单排求解,和上面一道题一样了。

 

  最后还有一道类似的题目,学会上面两道题目之后,这道题就差不多了。

   不过这里是从问题0开始的,和上面的顺序是相反的,知道这个思路之后就很好做了。

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词