动态规划;漂亮打印问题;时间复杂度O(n方); 思考方法记录在内;

考虑动态规划题目,首先从题目的要求入手。
例如此题:要求找出最少空格数的方案,其初始范围是n个单词的最少空格数。 那么,我们手动执行这个过程的时候,首先用单词去往第一行放,这一行会有一个空格数,然后再去计算剩下的单词的最少空格数,当前空格数+剩下单词的最少空格数就是最终的解,然而子问题也是最少空格数的求解。  再进一步看,求最少空格数,我们需要安排前边的某几个单词放置于当前行,然后计算剩余的单词的最少空格数,所以我们需要求出到底在该行放置多少个单词,并且字符数量不超过行字符数量的限制的情况下,加上剩余单词的最少空格数量,取所有情况的一个最小值,那么这个问题就得到了一个最优值。  子问题和父问题具有相同的性质,即最优性,不同于穷举方法。 这里我们计算得到的值都是最优的,而且父问题的最优值不会影响子问题的最优值,子问题完全由子问题来确定,这就是没有后效性。 另外,由于每一层可以放不同数量的单词,我们需要分别计算,找一个最小的,再子问题中,大范围的子问题的子问题会包含小范围的子问题,就是有重叠的问题。

说到这里,就可以根据最优+无后效+重叠的性质,选择动态规划自底向上的算法递推得到最终结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值