202. 快乐数
哈希表
import java.util.HashSet;
class Solution {
public boolean isHappy(int n) {
/**
* 如果会无限循环,说明结果会重复出现,判断元素是否重复出现,可以用Set集合构建哈希表
*/
HashSet<Integer> set = new HashSet<>();
while (n != 1){
int sum = 0;
while (n / 10 != 0 || n % 10 != 0){
sum += (n % 10) * (n % 10);
n = n / 10;
}
if (set.contains(sum)){
return false;
}
else {
set.add(sum);
n = sum;
}
}
return true;
}
}
/**
* 时间复杂度 O(logn)
* 空间复杂度 O(logn)
*/