60 - 快乐数
Last updated
Was this helpful?
Last updated
Was this helpful?
编写一个算法来判断一个数是不是“快乐数”。
一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。
示例:
输入: 19 输出: true 解释: 12 + 92 = 82 82 + 22 = 68 62 + 82 = 100 12 + 02 + 02 = 1
作者:rachy 链接:
快指针每次多算一步,如果和慢指针相遇,说明有循环,那么判断这个循环的是不是1,就行了。
Runtime: 0 ms, faster than 100.00% of Go online submissions forHappy Number.
Memory Usage: 2 MB, less than 100.00% of Go online submissions forHappy Number.
Runtime: 56 ms, faster than 93.38% of JavaScript online submissions for Happy Number.
Memory Usage: 35 MB, less than 92.31% of JavaScript online submissions for Happy Number.
在第4行计算值的时候,不用bit
来装一下n%10
,而是直接放到sum里面一起算,速度就会快一点点。
不过go已经100%了,所以优化了这个也看不出来
如果发现数字出现过,而且是1,就返回true,不然返回false
Runtime: 0 ms, faster than 100.00% of Go online submissions forHappy Number.
Memory Usage: 2.1 MB, less than 100.00% of Go online submissions for Happy Number.
go中的哈希表就是map,所以就用来记录下曾经出现的数字
Runtime: 64 ms, faster than 64.62% of JavaScript online submissions for Happy Number.
Memory Usage: 35 MB, less than 92.31% of JavaScript online submissions for Happy Number.
作者:coder233 链接: