题目考察的知识点

考察哈希表的应用

题目解答方法的文字分析

根据题意不断循环这个更新的过程,并将结果计入set中,如果最后出现了重复就说明是快乐数,或者最后的结果为1的时候也可以证明是快乐数。

本题解析所用的编程语言

使用Java解答

完整且正确的编程代码

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param n int整型
     * @return bool布尔型
     */
    

    public boolean isHappy(int n) {
        Set<Integer> set = new HashSet<>();
        while (n != 1 && !set.contains(n)) {
            set.add(n);
            n = help(n);
        }
        return n == 1;
    }

    private int help(int n) {
        int  res= 0;
        while (n > 0) {
            int num = n % 10;
            n = n / 10;
            res += num * num;
        }
        return res;
    }
}