leetcode-202-Happy Number
2017-02-17 15:56
357 查看
问题
题目:[leetcode-202]思路
这个题起初没想明白终止条件,后来才明白。做题的时候要注意,既然你想的和题目思路不一致,肯定是你错了。所以,还是要像题目思路靠拢。我又仔细看看了题目,发现题目其实说了终止的两个条件,只不过自己审题不清楚。结尾数字是1
在一个环里面反复循环
第二点说明了,不会出现更多的数字。既然你在环里面反复迭代,那证明肯定有重复的数字存在。这点毋庸置疑,所以改用hash表即可。
代码
class Solution { public: bool isHappy(int n) { std::map<int, bool> mapper; mapper = true; bool flag = false; for(;;){ n = digitSum(n); if(1==n){ flag = true; break; } if(mapper.find(n) != mapper.end()) break; else mapper = true; } return flag; } private: int digitSum(int val){ int ret = 0; while(val){ int t = val%10; val /= 10; ret += t*t; } return ret; } };
相关文章推荐
- [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(java)
- 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
- 【LeetCode】202. Happy Number
- LeetCode 202. Happy Number
- LeetCode 202 Happy Number
- LeetCode 202. Happy Number(快乐数字)
- leetcode202. Happy Number
- LeetCode 202. Happy Number ( C++版)