LeetCode 202. Happy Number
来源:互联网 发布:勇敢的心 手游 知乎 编辑:程序博客网 时间:2024/06/08 18:33
一、题目
Write an algorithm to determine if a number is "happy".
A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy numbers.
Example: 19 is a happy number
- 12 + 92 = 82
- 82 + 22 = 68
- 62 + 82 = 100
- 12 + 02 + 02 = 1
注意:结果为1返回true,那么什么时候返回false呢?就是当拆分个位数求平方和过程中出现无限循环?
怎么样来判断进入死循环呢?就是每次将sum值载入到一个表中,当查询到当前sum值历史上已经出现过,直接返回false。
可以进行空间上的优化
class Solution {public: bool isHappy(int n) { //int count = 0; map<int, int> mymap1; while (true) { int sum = 0; while (n) //将n拆分为个位数,同时求其平方和 { //mymap.push_back(n % 10); int temp = n%10; sum += temp*temp; n /= 10; } if (sum == 1) { //cout << "happy" << endl; return true; } if(mymap1[sum]) //判断sum历史上出现过没 { return false; } mymap1[sum]++; //没出现过加入表中 n = sum; //更新n进入下一轮循环 /* if (count++ > 10) { return false; }*/ } return false; }};
0 0
- [LeetCode]202.Happy Number
- 【LeetCode】202.happy number
- LeetCode 202. Happy Number
- [leetcode] 202.Happy Number
- 【leetcode】202. Happy Number
- [leetcode] 202. Happy Number
- 202. Happy Number LeetCode
- 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
- Parameter xxx not found.
- LeetCode----486. Predict the Winner 动态规划
- 数据结构之红黑树
- 题目:编写程序,打印菱形星号组合
- 两种方式实现父布局中两列布局的自适应
- LeetCode 202. Happy Number
- /usr/bin/env: node: No such file or directory
- 要怎么才能进入tomcat的后台管理?
- Myeclipse中启动Jboss报错
- 独立看门狗实验
- Android 开源8款游戏引擎
- 掌上生词本 开发 (一): 顶部导航栏实现
- HDU
- Spreadsheet_Excel_Reader导入EXCEL内容到数据库的时候出现的错误