《剑指offer》12、剪绳子(动态规划与贪心)

剪绳子

offer12给出的是一个数学类的问题,现有一段长度为n>1的绳子,要将其剪成m>1段,m,n均为整数,问如何剪才能使得剪断的每一段绳子的长度乘积最大。
比方说,有一段长度为5的绳子,那么有如下的剪法:
[4,1],[3,1,1],[3,2],[2,2,1],[2,1,1,1],[1,1,1,1,1]
其中[3,2]有最大的乘积6.

动态规划

关于动态规划,展开讲的话就没完没了了。我给出了两个知乎上的链接和一个cnblog上的介绍,我觉得这三个地儿讲得足够齐全了。
当然,我们举一个非常简单的例子来说明动态规划的核心:我比较认可的是第一个链接中的一个说法,动态规划就像魔改的数列题,核心是在于写出状态转移方程,也就是将下一个状态写成和上一个状态有关的例子。我们正是拿这个数列说事——斐波那契数列。
我们知道斐波那契数列可以写成通项
F n = ( 1 + 5 2 ) n − ( 1 − 5 2 ) n 5 F_{n}=\frac{\left(\frac{1+\sqrt{5}}{2}\right)^{n}-\left(\frac{1-\sqrt{5}}{2}\right)^{n}}{\sqrt{5}} Fn=5 (21+5 )n(215 )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值