202. Happy Number
来源:互联网 发布:店宝宝软件好不好 编辑:程序博客网 时间:2024/06/18 07:38
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
解法一:Language - Java Run Time - 1ms
解题思路:快乐数(happy number)有以下的特性:在给定的进位制下,该数字所有数位(digits)的平方和,得到的新数再次求所有数位的平方和,如此重复进行,最终结果必为1。不是快乐数的数称为不快乐数(unhappy number),所有不快乐数的数位平方和计算,最後都会进入 4 → 16 → 37 → 58 → 89 → 145 → 42 → 20 → 4 的循环中。
public boolean isHappy(int n) { if(n == 1) { return true; }else if(n == 37) { return false; }else { int result = 0; while(n > 0){ result += (n % 10) * (n % 10); n /= 10; } return isHappy(result); } }
解法二:Language - Java Run Time - 4ms
解题思路:HashSet + 递归
public boolean isHappy(int n) { if(n <= 0) return false; if(n == 1) return true; HashSet<Integer> set = new HashSet<Integer>(); return isHappyNum(n, set); } public boolean isHappyNum(int n, HashSet<Integer> set) { int result = 0; while(n != 0){ result += (n % 10) * (n % 10); n /= 10; } if(result == 1){ return true; }else if(set.contains(result)){ //存在无限循环 return false; }else { set.add(result); return isHappyNum(result, set); } }
- 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] 202. Happy Number
- 202. Happy Number LeetCode
- 202. Happy Number
- leetCode 202. Happy Number
- 202. Happy Number
- 202. Happy Number
- 202. Happy Number
- [LeetCode]202. Happy Number
- leetcode 202. Happy Number
- 202. Happy Number
- 202. Happy Number
- url
- 小程序四:视图之WXSS
- ES中使用delete by query
- hive常用函数
- 虚拟机之CentOS安装jdk步骤
- 202. Happy Number
- RabbitMQ-一、基本概念
- 交叉编译dbus-python库tips
- tomcat使用memcached完成集群(session共享实现方式)
- POI操作Excel详解,HSSF和XSSF两种方式
- 单总线协议(1—wire)
- 查看android手机中安装apk的包名等信息
- 读写自旋锁详解,第 1 部分
- GC Roots