LeetCode 202 : Happy Number
2015-05-07 21:36
399 查看
如果直接写会发现一个问题,当数字不是happy number 时会陷入死循环。有个trick ,如果有重复就不是happy number , 所以需要用一个哈希表去存算过之后的数,如果重复跳出循环。
这里可以用到set容器去存,find()能找出这个数的index,如果不在set中返回end()。
class Solution {
public:
bool isHappy(int n) {
set<int> s;
while(n!=1){
n=getsum(n);
if(s.find(n)!=s.end()){
return 0;
n=1;
}
s.insert(n);
}
return 1;
}
int getsum(int n){
int sum=0;
while(n){
sum=(n%10)*(n%10)+sum;
n=n/10;
}
return sum;
}
};
这里可以用到set容器去存,find()能找出这个数的index,如果不在set中返回end()。
class Solution {
public:
bool isHappy(int n) {
set<int> s;
while(n!=1){
n=getsum(n);
if(s.find(n)!=s.end()){
return 0;
n=1;
}
s.insert(n);
}
return 1;
}
int getsum(int n){
int sum=0;
while(n){
sum=(n%10)*(n%10)+sum;
n=n/10;
}
return sum;
}
};
相关文章推荐
- [leetcode] 202. Happy Number 解题报告
- (easy)LeetCode 202.Happy Number
- LeetCode---(202)Happy Number
- leetcode 202. Happy Number
- leetcode 202. Happy Number
- LeetCode 202. Happy Number
- LeetCode 202 Happy number
- Leetcode 202:Happy Number
- leetcode202. Happy Number
- leetcode202 Happy Number
- Leetcode 202. Happy Number
- leetcode-202-Happy Number
- 【LeetCode】(202)Happy Number(Easy)
- leetcode 202. Happy Number
- LeetCode *** 202. Happy Number
- LeetCode 202. Happy Number (迭代,各位平方和)
- leetcode 202. Happy Number
- [Leetcode]#202 Happy Number
- Leetcode #202 Happy Number
- [LeetCode]202.Happy Number