classSolution{public://获得每位数的和intgetsum(int x){int sum =0;while(x){
sum +=(x %10)*(x %10);
x /=10;}return sum;}boolisHappy(int n){
unordered_set<int> myset;int sum =0;while(1){
sum =getsum(n);if(myset.find(n)!= myset.end()){returnfalse;}elseif(n ==1){returntrue;}else{
myset.insert(n);}
n = sum;}}};
tips: 这里要注意的是: unordered_set 是无序不重复的集合,底层使用的是hash表。 set 是有序不重复的集合,底层使用的是红黑树 multi_set 是有序可重复的集合,底层也是使用的红黑树。