202. 快乐数


集合

import java.util.HashSet;

class Solution {
    public boolean isHappy(int n) {

        HashSet set = new HashSet<>();

        while (n != 1){

            int sum = 0;

            while (n / 10 != 0 || n % 10 != 0){

                sum += (n % 10) * (n % 10);
                n = n / 10;
            }

            n = sum;

            /**
             * 用集合存储出现过的数字,如果循环出现就返回false
             */
            if (set.contains(sum)){
                return false;
            }

            set.add(sum);
        }

        return true;
    }
}

/**
 * 时间复杂度 O(logn)
 * 空间复杂度 O(logn)
 */

https://leetcode-cn.com/problems/happy-number/