整数划分算法的基本信息

整数分区是将其写为正整数之和的一种方式。例如,数字 5 的分区是:

  • 4 + 1
  • 3 + 2
  • 2 + 2 + 1
  • 2 + 1 + 1 + 1
  • 1 + 1 + 1 + 1 + 1

请注意,更改 summands 的顺序不会创建不同的分区。

分区函数本质上是递归的,因为较小数字的结果在较大数字的结果中显示为分量。设 p(n, m) 为仅使用小于或等于 m 的正整数的 n 的分区数。可以看出,对于 m > np(n) = p(n, n) ,并且 p(n, m) = p(n, n) = p(n) 。 ** ** ** ** ** ** ** **

StackOverflow 文档

整数分区算法示例:

https://i.stack.imgur.com/5kiXt.jpg

辅助空间: O(n^2)
时间复杂度: O(n(logn))