diff --git a/src/main/java/leetcode/editor/cn/HappyNumber.java b/src/main/java/leetcode/editor/cn/HappyNumber.java new file mode 100644 index 0000000..5d7c4c1 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/HappyNumber.java @@ -0,0 +1,80 @@ +//编写一个算法来判断一个数 n 是不是快乐数。 +// +// 「快乐数」定义为: +// +// +// 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 +// 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。 +// 如果 可以变为 1,那么这个数就是快乐数。 +// +// +// 如果 n 是快乐数就返回 true ;不是,则返回 false 。 +// +// +// +// 示例 1: +// +// +//输入:19 +//输出:true +//解释: +//12 + 92 = 82 +//82 + 22 = 68 +//62 + 82 = 100 +//12 + 02 + 02 = 1 +// +// +// 示例 2: +// +// +//输入:n = 2 +//输出:false +// +// +// +// +// 提示: +// +// +// 1 <= n <= 231 - 1 +// +// Related Topics 哈希表 数学 +// 👍 615 👎 0 + +package leetcode.editor.cn; + +import java.util.HashSet; +import java.util.Set; + +//202:快乐数 +public class HappyNumber { + public static void main(String[] args) { + //测试代码 + Solution solution = new HappyNumber().new Solution(); + } + + //力扣代码 + //leetcode submit region begin(Prohibit modification and deletion) + class Solution { + private int getNext(int n) { + int totalSum = 0; + while (n > 0) { + int d = n % 10; + n = n / 10; + totalSum += d * d; + } + return totalSum; + } + + public boolean isHappy(int n) { + Set seen = new HashSet<>(); + while (n != 1 && !seen.contains(n)) { + seen.add(n); + n = getNext(n); + } + return n == 1; + } + } +//leetcode submit region end(Prohibit modification and deletion) + +} \ No newline at end of file diff --git a/src/main/java/leetcode/editor/cn/HappyNumber.md b/src/main/java/leetcode/editor/cn/HappyNumber.md new file mode 100644 index 0000000..906d66d --- /dev/null +++ b/src/main/java/leetcode/editor/cn/HappyNumber.md @@ -0,0 +1,41 @@ +

编写一个算法来判断一个数 n 是不是快乐数。

+ +

「快乐数」定义为:

+ + + +

如果 n 是快乐数就返回 true ;不是,则返回 false

+ +

 

+ +

示例 1:

+ +
+输入:19
+输出:true
+解释:
+12 + 92 = 82
+82 + 22 = 68
+62 + 82 = 100
+12 + 02 + 02 = 1
+
+ +

示例 2:

+ +
+输入:n = 2
+输出:false
+
+ +

 

+ +

提示:

+ + +
Related Topics
  • 哈希表
  • 数学
  • \n
  • 👍 615
  • 👎 0
  • \ No newline at end of file