非常简单的哈希应用,储存sum,上链接:
https://leetcode-cn.com/problems/happy-number/
class Solution {
public boolean isHappy(int n) {
Set<Integer> set = new HashSet<Integer>();
int sum = 0;
int temp = 0;
if(n == 1) return true;
while(true){
//求平方和,赋值给sum
while(n >= 10){
temp = n % 10;
sum = sum + temp * temp;
n = (n - temp) / 10;
}
sum = sum + n * n;
//如果sum是1就是快乐数
if(sum == 1) return true;
//把sun存进哈希set里,如果已经存在,则进入循环,直接返回false
if(!set.contains(sum)){
set.add(sum);
}else{
return false;
}
n = sum;
sum = 0;
}
}
}