From 1eb35d880f254607db8471f698a94229c73bcc4b Mon Sep 17 00:00:00 2001 From: Breno Baptista Date: Wed, 23 Jun 2021 12:06:14 -0300 Subject: [PATCH] Suggestion for solution 202 --- .../0202.Happy-Number/202. Happy Number.go | 51 ++++++++++--------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/leetcode/0202.Happy-Number/202. Happy Number.go b/leetcode/0202.Happy-Number/202. Happy Number.go index 3764600e..130731b6 100644 --- a/leetcode/0202.Happy-Number/202. Happy Number.go +++ b/leetcode/0202.Happy-Number/202. Happy Number.go @@ -1,27 +1,32 @@ package leetcode -func isHappy(n int) bool { - if n == 0 { - return false - } - res := 0 - num := n - record := map[int]int{} - for { - for num != 0 { - res += (num % 10) * (num % 10) - num = num / 10 - } - if _, ok := record[res]; !ok { - if res == 1 { - return true - } - record[res] = res - num = res - res = 0 - continue - } else { - return false - } +func getSquareOfDigits(n int) int { + squareOfDigits := 0 + temporary := n + + for temporary != 0 { + remainder := temporary % 10 + squareOfDigits += remainder * remainder + temporary /= 10 } + + return squareOfDigits +} + +func isHappy(n int) bool { + record := map[int]int{} + + for n != 1 { + record[n] = n + + n = getSquareOfDigits(n) + + for _, previous := range record { + if n == previous { + return false + } + } + } + + return true }