用一个unorderedmap 去存已经出现的数
#include <unordered_set>
using namespace std;
class Solution {
public:
bool isHappy(int n)
{
unordered_set<int> s;
while(s.find(n)==s.end())
{
s.insert(n);
int temp=0;
while(n)
{
temp+=(n%10)*(n%10);
n/=10;
}
if(temp==1)
return true;
else
n = temp;
}
return false;
}
};