question 1:find happy number
答案1: 30%
循环将数的各位平方和相加,假如这个和为1就为真,否则继续循环,但是如果这个和出现过,将会陷入死循环,这时候返回False
这个答案比较慢,因为需要将整数转换成字符串,然后再将字符串转换成整数
答案2:90%
question 2:Longest Harmonious Subsequence
给定一个序列,在其子集中找到最大最小值差为1,且长度最大的子集长度
答案:
先对序列进行统计,假设元素X的个数为 COUNT(X)。那么根据定义,最大长度一定是由COUNT(X)+COUNT(X+1)组成的
问题:这样的方法并不保证一定得到的是子集的最大长度,因为对元素统计的时候是无序的。所以这个答案虽然能AC,但不太好
question 3:判断是否为2的幂
一个数是2的幂的话,其二进制必定只有一个1.利用这个特点,最简单直接的做法是将整数转成二进制字符串,数1
答案(1)50%:
答案(2)90%:
因为假如这个数为2的幂,那么 n&(n-1)=0应该成立