📌 Python3 DP top down approach faster than 96%
\nclass Solution:\n    result = {1:1,2:1,3:2,4:4,5:6,6:9,7:12,8:18,9:27,10:36}\n    def integerBreak(self, n: int) -> int:\n        try:\n            return sel
```\nclass Solution:\n    result = {1:1,2:1,3:2,4:4,5:6,6:9,7:12,8:18,9:27,10:36}\n    def integerBreak(self, n: int) -> int:\n        try:\n            return self.result[n]\n        except:\n            x = float("-inf")\n            for i in range(1,n):\n                j = n-1\n                while j>0:\n                    if i+j==n:\n                        k = self.integerBreak(i)*self.integerBreak(j)\n                        x = max(x,k)\n                    j-=1\n            self.result[n] = x\n            return self.result[n]\n```
['Dynamic Programming', 'Recursion', 'Memoization', 'Python3']