题解
提到实践复杂度如下:
如何证明红框部分?
证明
设数组为[7,7,7,7],f(n)为长度为n的数组的划分。划分总数为以下情况相加。
- 第一段为[7],剩下的对[7,7,7]划分,划分数有f(3)
- 第一段为[7,7],剩下的对[7,7]划分,划分数有f(2)
- 第一段为[7,7,7],剩下的对[7]划分,划分数有f(1)
- 第一段为[7,7,7,7],剩下的对[]划分,划分数有f(0)
所以f(4) = f(3) + f(2) + f(1) + f(0),而根据推理法,可知:
所以f(n) = f(n-1) + f(n-2) + ... + f(0)
= 2*(f(n-2) + ... + f(0))
= 4*(f(n-3) + ... + f(0))
= ...
= 2^(n-1) * f(0)
= 2^(n-1)
划分数f(n) = 2^(n-1)得证。