Как я могу получить асимптотику c сложности этого кода? - PullRequest
0 голосов
/ 09 апреля 2020

Я пытался получить эту сложность O (n). все шаги до повторения равны шагам * O (n) + повторение T (n) = O (n).

lis = []
class Solution:

    def isHappy(self, n: int) -> bool:
        numbers_list = [int(num)**2 for num in str(n)]#O(n)
        numbers_sum = sum(numbers_list)#O(n)
        if numbers_sum == 1:#O(1)
            lis.clear()#O(n)
            return True#O(1)
        if numbers_sum  in lis:#O(n)
            lis.clear()#O(n)
            return False#O(1)
        lis.append(numbers_sum)#O(n)
        return self.isHappy(numbers_sum)#O(n)
...