(n, seen = new Set())
| 6 | * @return {boolean} |
| 7 | */ |
| 8 | var isHappy = (n, seen = new Set()) => { |
| 9 | const hasCycle = () => n === 1 || seen.has(n); |
| 10 | while (!hasCycle()) { |
| 11 | /* Time O(log(N)) */ |
| 12 | seen.add(n); /* Space O(log(N)) */ |
| 13 | n = getNext(n); /* Time O(log(N)) */ |
| 14 | } |
| 15 | |
| 16 | return n === 1; |
| 17 | }; |
| 18 | |
| 19 | var getNext = (n, sum = 0) => { |
| 20 | while (0 < n) { |