欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Happy Number 博客分类: Leetcode 哈希 

程序员文章站 2024-03-18 09:28:52
...
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

题目中规定一个happy number的规则,我们借助于哈希表存储已经出现过的数字,如果计算的结果为1我们就返回true;如果计算出的结果不为1并且哈希表中已经存在这个数,就说明了它无限循环,我们返回false。代码如下:
public class Solution {
    public boolean isHappy(int n) {
        HashSet<Integer> set = new HashSet<Integer>();
        int tem = n;
        while(true) {
            if(tem == 1) return true;
            if(set.contains(tem)) {
                return false;
            } else {
                set.add(tem);
                tem = getSquare(tem);
            }
        }
    }
    public int getSquare(int n) {
        int result = 0;
        while(n > 0) {
            result += (n % 10) * (n % 10);
            n /= 10;
        }
        return result;
    }
}
相关标签: 哈希