Я пытался получить эту сложность 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)