整数划分算法的基本信息
整数的分区是将其写为正整数之和的一种方式。例如,数字 5 的分区是:
- 五
- 4 + 1
- 3 + 2
- 2 + 2 + 1
- 2 + 1 + 1 + 1
- 1 + 1 + 1 + 1 + 1
请注意,更改 summands 的顺序不会创建不同的分区。
分区函数本质上是递归的,因为较小数字的结果在较大数字的结果中显示为分量。设 p(n, m) 为仅使用小于或等于 m 的正整数的 n 的分区数。可以看出,对于 m > n , p(n)
= p(n, n) ,并且 p(n, m) = p(n, n) = p(n)
。 ** ** ** ** ** ** ** **
整数分区算法示例:
https://i.stack.imgur.com/5kiXt.jpg
辅助空间: O(n^2)
时间复杂度: O(n(logn))