LeetCode题解——Happy Number
来源:互联网 发布:app数据接口设计规范 编辑:程序博客网 时间:2024/06/07 04:06
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.参考判断链表是否是一个循环链表的方法:fast和slow指针; 2.利用hashset,保存计算过程,若出现重复的数,则不是happy number。
方法一:4ms
class Solution {public: int digitSquareSum(int n) { int sum = 0, tmp; while (n) { tmp = n % 10; sum += tmp * tmp; n /= 10; } return sum; } bool isHappy(int n) { int slow, fast; slow = fast = n; do { slow = digitSquareSum(slow); fast = digitSquareSum(fast); fast = digitSquareSum(fast); } while(slow != fast); if (slow == 1) return 1; else return 0; }};
方法2:4ms
class Solution {public: bool isHappy(int n) { set<int> looktable; while(looktable.find(n)==looktable.end()){ looktable.insert(n); n = digitSquareSum(n); if(n==1) return true; } return false; } int digitSquareSum(int n){ int sum =0 ; while(n){ sum+=pow((n%10),2); n=n/10; } return sum; }};
0 0
- LeetCode题解——Happy Number
- LeetCode Happy Number 题解
- LeetCode题解:Happy Number
- LeetCode 题解(200) : Happy Number
- LeetCode 202. Happy Number 题解
- leetcode题解-202 Happy Number
- Happy Number —— Leetcode
- LeetCode——Happy Number
- Leetcode 记录——Happy Number
- Leetcode——202. Happy Number
- Leetcode Problem.202—Happy Number
- LeetCode202—Happy Number
- leetcode——202——Happy Number
- leetcode刷题日记——Happy Number
- LeetCode题解——9Palindrome Number
- LeetCode题解——Ugly Number II
- LeetCode题解——Create Maximum Number
- [leetcode] Happy Number
- 关键字
- iOS开发拓展篇—UIDynamic(简单介绍)
- U-Boot启动过程完全分析
- hdu 4788 Hard Disk Drive(水)
- string 的实例分析。
- LeetCode题解——Happy Number
- hadoop学习第一天
- 通过开发者工具监控事件触发
- 关于Quartz 2D绘图的简单使用
- openOffice在linux和window转的有些不同
- iOS开发拓展篇—UIDynamic(重力行为+碰撞检测)
- 1038. 统计同成绩学生(20)
- dhcp snooping原理
- iOS开发拓展篇—UIDynamic(捕捉行为)