“查找所有因子组合”的算法的运行时复杂性

时间:2019-01-11 03:52:49

标签: time-complexity backtracking

以下将返回给定数字的所有因子组合:

例如:12将返回: [[2,6],[2,2,3],[3,4]] <-不返回重复的因子组合。

import math
class Solution:
    def getFactors(self, n):
        """
        :type n: int
        :rtype: List[List[int]]
        """
        res = []
        self.recurse(2, n, [], res)
        return res

    def recurse(self, start, n, output, res):
        for i in range(start, int(math.sqrt(n)) + 1):
                q, r = divmod(n, i)  # 8/2 ===> q=4,r=0
                if r == 0:  # If divisble
                    output.append(i)
                    output.append(q)
                    res.append(output[:])
                    output.pop()
                    self.recurse(i, q, output, res)
                    output.pop()

在数学上不严格(请不解决递归关系),分析该算法运行时间复杂度的合理方法是什么?

0 个答案:

没有答案