美文网首页
202. 快乐数

202. 快乐数

作者: Andysys | 来源:发表于2019-12-30 22:25 被阅读0次
    // 快慢指针
    public boolean isHappy(int n) {
        if (n == 1) {
            return true;
        }
        int slow = n, fast = n;
        do {
            slow = bitSquareSum(slow);
            fast = bitSquareSum(fast);
            fast = bitSquareSum(fast);
        } while (slow != fast);

        return slow == 1;
    }

    private int bitSquareSum(int n) {
        int sum = 0;
        while (n > 0) {
            sum += Math.pow(n % 10, 2);
            n = n / 10;
        }
        return sum;
    }


    // 集合
    public boolean isHappy2(int n) {
        Set<Integer> set = new HashSet<>();
        int m = 0;
        while (true) {
            while (n != 0) {
                m += Math.pow(n % 10, 2);
                n = n / 10;
            }
            if (m == 1) {
                return true;
            }
            if (set.contains(m)) {
                return false;
            } else {
                set.add(m);
                n = m;
                m = 0;
            }
        }
    }

相关文章

  • [Leetcode] 202. 快乐数

    202. 快乐数 来源: 202. 快乐数 1. 解题思路 设置集合查找是否已出现过 2. 代码

  • LeetCode学习计划:LeetCode 75-Level-2

    202. 快乐数[https://leetcode.cn/problems/happy-number/] 问题描述...

  • 快乐数

    202. 快乐数[https://leetcode.cn/problems/happy-number/] 题目编写...

  • 202. 快乐数

    内容 编写一个算法来判断一个数是不是“快乐数”。 一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位...

  • 202. 快乐数

    leetcode

  • 202. 快乐数

    编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数...

  • 202. 快乐数

    编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数...

  • 202. 快乐数

  • 202. 快乐数

    编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数...

  • 202.快乐数 不快乐的时候做个快乐题!

    202.快乐数[https://leetcode-cn.com/problems/happy-number/sol...

网友评论

      本文标题:202. 快乐数

      本文链接:https://www.haomeiwen.com/subject/dnbeoctx.html